// $ANTLR 3.2 Sep 23, 2009 12:02:23 C:\\Users\\grand\\Desktop\\another\\MySQL.g 2013-03-03 16:53:30
package edu.fiu.kdrg.mqlminer.sql;

import org.antlr.runtime.*;
import java.util.Stack;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.util.HashMap;

import org.antlr.runtime.tree.*;

public class MySQLParser extends Parser {
	public static final String[] tokenNames = new String[] { "<invalid>",
			"<EOR>", "<DOWN>", "<UP>", "SELECT_STMT", "DELETE_STMT",
			"INSERT_STMT", "UPDATE_STMT", "CREATE_TAB_STMT", "DROP_TAB_STMT",
			"ALTER_TAB_STMT", "CREATE_VIEW_STMT", "RENAME_TAB_STMT",
			"DROP_VIEW_STMT", "TRUNCATE_TAB_STMT", "UNION_OP", "UNION_ALL_OP",
			"EXIST_OP", "NOT_EXIST_OP", "ALL_OP", "ANY_OP", "AS_OP", "COLUMNS",
			"COLUMN_SPEC", "GROUP_BY", "ORDER_BY", "SHIFT_LEFT", "SHIFT_RIGHT",
			"SEMI", "UNION_SYM", "ALL", "SELECT", "DISTINCT", "DISTINCTROW",
			"HIGH_PRIORITY", "STRAIGHT_JOIN", "SQL_SMALL_RESULT",
			"SQL_BIG_RESULT", "SQL_BUFFER_RESULT", "SQL_CACHE_SYM",
			"SQL_NO_CACHE_SYM", "SQL_CALC_FOUND_ROWS", "FROM", "FOR_SYM",
			"UPDATE", "LOCK", "IN_SYM", "SHARE_SYM", "MODE_SYM", "WHERE",
			"GROUP_SYM", "BY_SYM", "COMMA", "WITH", "ROLLUP_SYM",
			"INTEGER_NUM", "HAVING", "ORDER_SYM", "ASC", "DESC", "LIMIT",
			"OFFSET_SYM", "ASTERISK", "LPAREN", "RPAREN", "DOT", "DELETE_SYM",
			"LOW_PRIORITY", "QUICK", "IGNORE_SYM", "ALL_FIELDS", "USING_SYM",
			"INSERT", "INTO", "ON", "DUPLICATE_SYM", "KEY_SYM", "EQ_SYM",
			"VALUES", "VALUE_SYM", "DEFAULT", "SET_SYM", "CREATE",
			"UNIQUE_SYM", "FULLTEXT_SYM", "SPATIAL_SYM", "INDEX_SYM",
			"ALGORITHM_SYM", "INPLACE_SYM", "COPY_SYM", "NONE_SYM",
			"SHARED_SYM", "EXCLUSIVE_SYM", "DROP", "TEMPORARY", "TABLE", "IF",
			"NOT_SYM", "EXISTS", "LIKE_SYM", "CONSTRAINT", "PRIMARY_SYM",
			"FOREIGN", "CHECK_SYM", "AUTO_INCREMENT", "COMMENT_SYM",
			"TEXT_STRING", "COLUMN_FORMAT", "FIXED_SYM", "DYNAMIC_SYM",
			"NULL_SYM", "BIT_SYM", "TINYINT", "UNSIGNED_SYM", "ZEROFILL",
			"SMALLINT", "MEDIUMINT", "INT_SYM", "INTEGER_SYM", "BIGINT",
			"REAL", "DOUBLE_SYM", "FLOAT_SYM", "DECIMAL_SYM", "NUMERIC_SYM",
			"DATE_SYM", "TIME_SYM", "TIMESTAMP", "CURRENT_TIMESTAMP",
			"DATETIME", "YEAR", "CHAR", "CHARACTER_SYM", "COLLATE_SYM",
			"VARCHAR", "BINARY", "VARBINARY", "TINYBLOB", "BLOB_SYM",
			"MEDIUMBLOB", "LONGBLOB", "TINYTEXT", "TEXT_SYM", "MEDIUMTEXT",
			"LONGTEXT", "ENUM", "REFERENCES", "MATCH", "FULL", "PARTIAL",
			"SIMPLE_SYM", "RESTRICT", "CASCADE", "NO_SYM", "ACTION",
			"ENGINE_SYM", "AVG_ROW_LENGTH", "CHECKSUM_SYM", "CONNECTION_SYM",
			"DATA_SYM", "DIRECTORY_SYM", "DELAY_KEY_WRITE_SYM",
			"INSERT_METHOD", "FIRST_SYM", "LAST_SYM", "KEY_BLOCK_SIZE",
			"MAX_ROWS", "MIN_ROWS", "PACK_KEYS_SYM", "PASSWORD",
			"ROW_FORMAT_SYM", "COMPRESSED_SYM", "REDUNDANT_SYM", "COMPACT_SYM",
			"STATS_AUTO_RECALC", "STATS_PERSISTENT", "PARTITION_SYM",
			"LINEAR_SYM", "HASH_SYM", "RANGE_SYM", "COLUMNS_SYM", "LIST_SYM",
			"PARTITIONS_SYM", "SUBPARTITION_SYM", "SUBPARTITIONS_SYM",
			"LESS_SYM", "THAN_SYM", "MAXVALUE_SYM", "STORAGE_SYM", "ALTER",
			"ADD_SYM", "COLUMN_SYM", "AFTER_SYM", "CHANGE", "MODIFY_SYM",
			"DISABLE_SYM", "KEYS", "ENABLE_SYM", "RENAME", "TO_SYM", "AS_SYM",
			"CONVERT_SYM", "DISCARD", "TABLESPACE", "IMPORT", "FORCE_SYM",
			"TRUNCATE", "COALESCE", "REORGANIZE_SYM", "EXCHANGE_SYM",
			"ANALYZE_SYM", "OPTIMIZE", "REBUILD_SYM", "REPAIR", "REMOVE_SYM",
			"PARTITIONING_SYM", "BTREE_SYM", "PARSER_SYM", "OR_SYM", "REPLACE",
			"UNDEFINED_SYM", "MERGE_SYM", "TEMPTABLE_SYM", "DEFINER",
			"CURRENT_USER", "SQL_SYM", "SECURITY_SYM", "INVOKER_SYM",
			"VIEW_SYM", "CASCADED", "LOCAL_SYM", "OPTION", "LTH", "GTH",
			"NOT_EQ", "LET", "GET", "ARMSCII8", "ASCII_SYM", "BIG5", "CP1250",
			"CP1251", "CP1256", "CP1257", "CP850", "CP852", "CP866", "CP932",
			"DEC8", "EUCJPMS", "EUCKR", "GB2312", "GBK", "GEOSTD8", "GREEK",
			"HEBREW", "HP8", "KEYBCS2", "KOI8R", "KOI8U", "LATIN1", "LATIN2",
			"LATIN5", "LATIN7", "MACCE", "MACROMAN", "SJIS", "SWE7", "TIS620",
			"UCS2", "UJIS", "UTF8", "SIGNED_SYM", "NATURAL", "LANGUAGE",
			"QUERY_SYM", "EXPANSION_SYM", "BOOLEAN_SYM", "SECOND", "MINUTE",
			"HOUR", "DAY_SYM", "WEEK", "MONTH", "QUARTER",
			"SECOND_MICROSECOND", "MINUTE_MICROSECOND", "MINUTE_SECOND",
			"HOUR_MICROSECOND", "HOUR_SECOND", "HOUR_MINUTE",
			"DAY_MICROSECOND", "DAY_SECOND", "DAY_MINUTE", "DAY_HOUR",
			"YEAR_MONTH", "LATIN1_GENERAL_CS", "LATIN1_BIN", "PLUS", "MINUS",
			"REAL_NUMBER", "HEX_DIGIT", "TRUE_SYM", "FALSE_SYM", "BIT_NUM",
			"ABS", "ACOS", "ASIN", "ATAN2", "ATAN", "CEIL", "CEILING", "CONV",
			"COS", "COT", "CRC32", "DEGREES", "EXP", "FLOOR", "LN", "LOG10",
			"LOG2", "LOG", "MOD", "PI", "POW", "POWER", "RADIANS", "RAND",
			"ROUND", "SIGN", "SIN", "SQRT", "TAN", "BIN", "BIT_LENGTH",
			"CHAR_LENGTH", "CONCAT_WS", "CONCAT", "ELT", "EXPORT_SET", "FIELD",
			"FIND_IN_SET", "FORMAT", "FROM_BASE64", "HEX", "INSTR", "LEFT",
			"LENGTH", "LOAD_FILE", "LOCATE", "LOWER", "LPAD", "LTRIM",
			"MAKE_SET", "MID", "OCT", "ORD", "QUOTE", "REPEAT", "REVERSE",
			"RIGHT", "RPAD", "RTRIM", "SOUNDEX", "SPACE", "STRCMP",
			"SUBSTRING_INDEX", "SUBSTRING", "TO_BASE64", "TRIM", "UNHEX",
			"UPPER", "WEIGHT_STRING", "ADDDATE", "ADDTIME", "CONVERT_TZ",
			"CURDATE", "CURTIME", "DATE_ADD", "DATE_FORMAT", "DATE_SUB",
			"DATEDIFF", "DAYNAME", "DAYOFMONTH", "DAYOFWEEK", "DAYOFYEAR",
			"EXTRACT", "FROM_DAYS", "FROM_UNIXTIME", "GET_FORMAT", "LAST_DAY",
			"MAKEDATE", "MAKETIME", "MICROSECOND", "MONTHNAME", "NOW",
			"PERIOD_ADD", "PERIOD_DIFF", "SEC_TO_TIME", "STR_TO_DATE",
			"SUBTIME", "SYSDATE", "TIME_FORMAT", "TIME_TO_SEC", "TIMEDIFF",
			"TIMESTAMPADD", "TIMESTAMPDIFF", "TO_DAYS", "TO_SECONDS",
			"UNIX_TIMESTAMP", "UTC_DATE", "UTC_TIME", "UTC_TIMESTAMP",
			"WEEKDAY", "WEEKOFYEAR", "YEARWEEK", "IFNULL", "AES_ENCRYPT",
			"AES_DECRYPT", "DECODE", "ENCODE", "DES_DECRYPT", "DES_ENCRYPT",
			"ENCRYPT", "MD5", "OLD_PASSWORD", "BENCHMARK", "CHARSET",
			"COERCIBILITY", "COLLATION", "CONNECTION_ID", "DATABASE", "SCHEMA",
			"USER", "SESSION_USER", "SYSTEM_USER", "VERSION_SYM", "FOUND_ROWS",
			"LAST_INSERT_ID", "GET_LOCK", "RELEASE_LOCK", "IS_FREE_LOCK",
			"IS_USED_LOCK", "MASTER_POS_WAIT", "INET_ATON", "INET_NTOA",
			"NAME_CONST", "SLEEP", "UUID", "AVG", "COUNT", "MAX_SYM",
			"MIN_SYM", "SUM", "BIT_AND", "BIT_OR", "BIT_XOR", "GROUP_CONCAT",
			"STD", "STDDEV", "STDDEV_POP", "STDDEV_SAMP", "VAR_POP",
			"VAR_SAMP", "VARIANCE", "ID", "XOR", "AND_SYM", "IS_SYM", "ANY",
			"BETWEEN", "SOUNDS_SYM", "ESCAPE_SYM", "REGEXP", "VERTBAR",
			"BITAND", "DIVIDE", "MOD_SYM", "POWER_OP", "NEGATION", "USER_VAR",
			"ROW_SYM", "CAST_SYM", "CASE_SYM", "WHEN_SYM", "THEN_SYM",
			"ELSE_SYM", "END_SYM", "AGAINST", "INTERVAL_SYM", "INNER_SYM",
			"CROSS", "JOIN_SYM", "OUTER", "OJ_SYM", "USE_SYM", "A_", "B_",
			"C_", "D_", "E_", "F_", "G_", "H_", "I_", "J_", "K_", "L_", "M_",
			"N_", "O_", "P_", "Q_", "R_", "S_", "T_", "U_", "V_", "W_", "X_",
			"Y_", "Z_", "ACCESSIBLE_SYM", "AGGREGATE_SYM", "ASENSITIVE_SYM",
			"AT_SYM", "AUTHORS_SYM", "AUTOEXTEND_SIZE_SYM", "BACKUP_SYM",
			"BEFORE_SYM", "BEGIN_SYM", "BINLOG_SYM", "BLOCK_SYM", "BOOL_SYM",
			"BOTH", "BYTE_SYM", "CACHE_SYM", "CALL_SYM", "CHAIN_SYM",
			"CHANGED", "CIPHER_SYM", "CLIENT_SYM", "CLOSE_SYM", "CODE_SYM",
			"COMMIT_SYM", "COMMITTED_SYM", "COMPLETION_SYM", "COMPRESS",
			"CONCURRENT", "CONDITION_SYM", "CONSISTENT_SYM", "CONTAINS_SYM",
			"CONTEXT_SYM", "CONTINUE_SYM", "CONTRIBUTORS_SYM", "CPU_SYM",
			"CROSECOND", "CUBE_SYM", "CURSOR_SYM", "DATAFILE_SYM",
			"DEALLOCATE_SYM", "DECLARE_SYM", "DELAYED_SYM", "DES_KEY_FILE",
			"DETERMINISTIC_SYM", "DISK_SYM", "DO_SYM", "DUAL_SYM", "DUMPFILE",
			"EACH_SYM", "ELSIF_SYM", "ENCLOSED", "ENDS_SYM", "ENGINES_SYM",
			"ERRORS", "ESCAPED", "EVENT_SYM", "EVENTS_SYM", "EVERY_SYM",
			"EXECUTE_SYM", "EXIT_SYM", "EXTENDED_SYM", "EXTENT_SIZE_SYM",
			"FAST_SYM", "FAULTS_SYM", "FIELDS_SYM", "FETCH_SYM", "FILE_SYM",
			"FLUSH_SYM", "FOUND_SYM", "FUNCTION_SYM", "GEOMETRY_SYM",
			"GEOMETRYCOLLECTION", "GLOBAL_SYM", "GRANT", "GRANTS",
			"HANDLER_SYM", "HELP_SYM", "HOST_SYM", "HOSTS_SYM",
			"IDENTIFIED_SYM", "INDEXES", "INFILE", "INITIAL_SIZE_SYM",
			"INOUT_SYM", "INSENSITIVE_SYM", "INSTALL_SYM", "IO_SYM", "IPC_SYM",
			"ISOLATION", "ISSUER_SYM", "ITERATE_SYM", "KILL_SYM", "LEADING",
			"LEAVE_SYM", "LEAVES", "LEVEL_SYM", "LINES", "LINESTRING", "LOAD",
			"LOCKS_SYM", "LOGFILE_SYM", "LOGS_SYM", "LONG_SYM", "LOOP_SYM",
			"MASTER_CONNECT_RETRY", "MASTER_HOST_SYM", "MASTER_LOG_FILE_SYM",
			"MASTER_LOG_POS_SYM", "MASTER_PASSWORD_SYM", "MASTER_PORT_SYM",
			"MASTER_SERVER_ID_SYM", "MASTER_SSL_CA_SYM",
			"MASTER_SSL_CAPATH_SYM", "MASTER_SSL_CERT_SYM",
			"MASTER_SSL_CIPHER_SYM", "MASTER_SSL_KEY_SYM", "MASTER_SSL_SYM",
			"MASTER_SSL_VERIFY_SERVER_CERT", "MASTER_SYM", "MASTER_USER_SYM",
			"MAX_CONNECTIONS_PER_HOUR", "MAX_QUERIES_PER_HOUR", "MAX_SIZE_SYM",
			"MAX_UPDATES_PER_HOUR", "MAX_USER_CONNECTIONS_SYM", "MEDIUM_SYM",
			"MEMORY_SYM", "MIGRATE_SYM", "MODIFIES_SYM", "MULTILINESTRING",
			"MULTIPOINT", "MULTIPOLYGON", "MUTEX_SYM", "NAME_SYM", "NAMES_SYM",
			"NATIONAL_SYM", "NCHAR_SYM", "NEW_SYM", "NEXT_SYM", "NO_WAIT_SYM",
			"NO_WRITE_TO_BINLOG", "NODEGROUP_SYM", "NVARCHAR_SYM",
			"ONE_SHOT_SYM", "ONE_SYM", "OPEN_SYM", "OPTIONALLY", "OPTIONS_SYM",
			"ORDER_BY_SYM", "OUT_SYM", "OUTFILE", "OWNER_SYM",
			"PAGE_CHECKSUM_SYM", "PAGE_SYM", "PHASE_SYM", "PLUGIN_SYM",
			"PLUGINS_SYM", "POINT_SYM", "POLYGON", "PORT_SYM", "PRECISION",
			"PREPARE_SYM", "PRESERVE_SYM", "PREV_SYM", "PRIVILEGES",
			"PROCEDURE", "PROCESS", "PROCESSLIST_SYM", "PROFILE_SYM",
			"PROFILES_SYM", "PURGE", "READ_ONLY_SYM", "READ_SYM",
			"READ_WRITE_SYM", "READS_SYM", "RECOVER_SYM",
			"REDO_BUFFER_SIZE_SYM", "REDOFILE_SYM", "RELAY_LOG_FILE_SYM",
			"RELAY_LOG_POS_SYM", "RELEASE_SYM", "RELOAD", "REPEATABLE_SYM",
			"REPLICATION", "REQUIRE_SYM", "RESET_SYM", "RESOURCES",
			"RESTORE_SYM", "RESUME_SYM", "RETURN_SYM", "RETURNS_SYM", "REVOKE",
			"ROLLBACK", "ROUTINE_SYM", "ROWS_SYM", "RTREE_SYM", "SAVEPOINT",
			"SCHEDULE_SYM", "SENSITIVE_SYM", "SEPARATOR_SYM", "SERIAL_SYM",
			"SERIALIZABLE_SYM", "SERVER_SYM", "SESSION_SYM", "SHOW",
			"SHUTDOWN", "SLAVE", "SNAPSHOT_SYM", "SOCKET_SYM", "SONAME_SYM",
			"SOURCE_SYM", "SPECIFIC_SYM", "SQL_THREAD", "SQLEXCEPTION_SYM",
			"SQLSTATE_SYM", "SQLWARNING_SYM", "SSL_SYM", "START_SYM",
			"STARTING", "STARTS_SYM", "STATUS_SYM", "STOP_SYM", "STRING_SYM",
			"SUBJECT_SYM", "SUPER_SYM", "SUSPEND_SYM", "SWAPS_SYM",
			"SWITCHES_SYM", "TABLE_CHECKSUM_SYM", "TABLES", "TERMINATED",
			"TRAILING", "TRANSACTION", "TRANSACTIONAL_SYM", "TRIGGER_SYM",
			"TRIGGERS_SYM", "TYPE_SYM", "TYPES_SYM", "UNCOMMITTED_SYM",
			"UNCOMPRESS", "UNCOMPRESSED_LENGTH", "UNDO_BUFFER_SIZE_SYM",
			"UNDO_SYM", "UNDOFILE_SYM", "UNICODE_SYM", "UNINSTALL_SYM",
			"UNKNOWN_SYM", "UNLOCK_SYM", "UNTIL_SYM", "UPGRADE_SYM", "USAGE",
			"USE_FRM", "UTF16LE", "UTF16", "UTF32", "VARIABLES", "VARYING",
			"WAIT_SYM", "WARNINGS", "WHILE_SYM", "WORK_SYM", "WRAPPER_SYM",
			"WRITE_SYM", "X509_SYM", "XA_SYM", "XML_SYM", "ARROW", "SET_VAR",
			"COLON", "RBRACK", "LBRACK", "HEX_DIGIT_FRAGMENT",
			"USER_VAR_SUBFIX1", "USER_VAR_SUBFIX2", "USER_VAR_SUBFIX3",
			"USER_VAR_SUBFIX4", "WHITE_SPACE", "SL_COMMENT", "ML_COMMENT" };
	public static final int MASTER_LOG_FILE_SYM = 628;
	public static final int D_ = 500;
	public static final int GEOMETRYCOLLECTION = 593;
	public static final int DEGREES = 316;
	public static final int NAME_CONST = 447;
	public static final int CASCADED = 229;
	public static final int PRECISION = 682;
	public static final int KOI8U = 259;
	public static final int BACKUP_SYM = 529;
	public static final int MASTER_SYM = 640;
	public static final int CONCAT_WS = 337;
	public static final int REORGANIZE_SYM = 208;
	public static final int E_ = 501;
	public static final int FETCH_SYM = 587;
	public static final int RPAREN = 64;
	public static final int ALL_OP = 19;
	public static final int AGGREGATE_SYM = 524;
	public static final int SQLSTATE_SYM = 736;
	public static final int REGEXP = 474;
	public static final int GET = 236;
	public static final int MEDIUMINT = 116;
	public static final int MASTER_PASSWORD_SYM = 630;
	public static final int SHOW = 726;
	public static final int DIVIDE = 477;
	public static final int RBRACK = 791;
	public static final int F_ = 502;
	public static final int ASC = 58;
	public static final int NEW_SYM = 659;
	public static final int TRANSACTION = 754;
	public static final int DAY_MINUTE = 293;
	public static final int CURDATE = 377;
	public static final int LEADING = 614;
	public static final int OCT = 356;
	public static final int G_ = 503;
	public static final int SL_COMMENT = 799;
	public static final int USER = 434;
	public static final int PLUGIN_SYM = 677;
	public static final int INVOKER_SYM = 227;
	public static final int SHUTDOWN = 727;
	public static final int KOI8R = 258;
	public static final int LOWER = 351;
	public static final int MAXVALUE_SYM = 187;
	public static final int GET_FORMAT = 390;
	public static final int AVG_ROW_LENGTH = 156;
	public static final int MAX_ROWS = 166;
	public static final int CONSTRAINT = 100;
	public static final int SQL_SMALL_RESULT = 36;
	public static final int OPTIONS_SYM = 669;
	public static final int TIME_SYM = 126;
	public static final int LBRACK = 792;
	public static final int INTERVAL_SYM = 490;
	public static final int UUID = 449;
	public static final int CURRENT_USER = 224;
	public static final int BTREE_SYM = 216;
	public static final int SLEEP = 448;
	public static final int GROUP_SYM = 50;
	public static final int RANGE_SYM = 179;
	public static final int BIT_NUM = 304;
	public static final int LINES = 618;
	public static final int MULTIPOINT = 652;
	public static final int SERIALIZABLE_SYM = 723;
	public static final int SECOND_MICROSECOND = 285;
	public static final int SQLEXCEPTION_SYM = 735;
	public static final int ADDDATE = 374;
	public static final int CONNECTION_ID = 431;
	public static final int LEVEL_SYM = 617;
	public static final int NULL_SYM = 110;
	public static final int INTEGER_NUM = 55;
	public static final int COMPRESS = 548;
	public static final int FAST_SYM = 584;
	public static final int AVG = 450;
	public static final int TRUNCATE = 206;
	public static final int A_ = 497;
	public static final int GROUP_CONCAT = 458;
	public static final int ORDER_BY_SYM = 670;
	public static final int MINUTE_SECOND = 287;
	public static final int EXIST_OP = 17;
	public static final int MASTER_SSL_CIPHER_SYM = 636;
	public static final int LONGTEXT = 144;
	public static final int B_ = 498;
	public static final int INSTR = 346;
	public static final int HEX_DIGIT = 301;
	public static final int RIGHT = 361;
	public static final int RENAME_TAB_STMT = 12;
	public static final int ATAN2 = 308;
	public static final int GB2312 = 251;
	public static final int MINUS = 299;
	public static final int SUSPEND_SYM = 747;
	public static final int QUICK = 68;
	public static final int SNAPSHOT_SYM = 729;
	public static final int COLON = 790;
	public static final int OPTIMIZE = 211;
	public static final int COLUMNS = 22;
	public static final int COLUMN_SYM = 191;
	public static final int MASTER_SSL_CA_SYM = 633;
	public static final int DATABASE = 432;
	public static final int ENCRYPT = 424;
	public static final int C_ = 499;
	public static final int VIEW_SYM = 228;
	public static final int USE_SYM = 496;
	public static final int SQL_BIG_RESULT = 37;
	public static final int TEXT_STRING = 106;
	public static final int ARROW = 788;
	public static final int NATURAL = 273;
	public static final int DETERMINISTIC_SYM = 565;
	public static final int FORCE_SYM = 205;
	public static final int PARTITION_SYM = 176;
	public static final int LESS_SYM = 185;
	public static final int EXTENT_SIZE_SYM = 583;
	public static final int RESET_SYM = 707;
	public static final int LN = 319;
	public static final int SQL_CALC_FOUND_ROWS = 41;
	public static final int CONVERT_SYM = 201;
	public static final int INT_SYM = 117;
	public static final int FIND_IN_SET = 342;
	public static final int BIT_LENGTH = 335;
	public static final int COUNT = 451;
	public static final int SUBSTRING_INDEX = 367;
	public static final int L_ = 508;
	public static final int DATEDIFF = 382;
	public static final int BENCHMARK = 427;
	public static final int MASTER_HOST_SYM = 627;
	public static final int MASTER_SERVER_ID_SYM = 632;
	public static final int XML_SYM = 787;
	public static final int BIT_OR = 456;
	public static final int SWITCHES_SYM = 749;
	public static final int MEDIUMBLOB = 139;
	public static final int LATIN1_BIN = 297;
	public static final int RTREE_SYM = 717;
	public static final int LPAD = 352;
	public static final int M_ = 509;
	public static final int MASTER_LOG_POS_SYM = 629;
	public static final int READS_SYM = 696;
	public static final int COALESCE = 207;
	public static final int TINYTEXT = 141;
	public static final int ON = 74;
	public static final int SHARED_SYM = 91;
	public static final int MATCH = 147;
	public static final int STRAIGHT_JOIN = 35;
	public static final int FLOOR = 318;
	public static final int COLLATE_SYM = 133;
	public static final int COMMITTED_SYM = 546;
	public static final int NCHAR_SYM = 658;
	public static final int AGAINST = 489;
	public static final int ISSUER_SYM = 611;
	public static final int N_ = 510;
	public static final int PAGE_SYM = 675;
	public static final int SHIFT_RIGHT = 27;
	public static final int FIELDS_SYM = 586;
	public static final int DISCARD = 202;
	public static final int TO_BASE64 = 369;
	public static final int DOUBLE_SYM = 121;
	public static final int STDDEV = 460;
	public static final int CONCURRENT = 549;
	public static final int PI = 324;
	public static final int THEN_SYM = 486;
	public static final int TIMESTAMP = 127;
	public static final int O_ = 511;
	public static final int UPPER = 372;
	public static final int DELETE_STMT = 5;
	public static final int DIRECTORY_SYM = 160;
	public static final int LOAD_FILE = 349;
	public static final int BIT_AND = 455;
	public static final int YEAR = 130;
	public static final int ROW_FORMAT_SYM = 170;
	public static final int LOOP_SYM = 625;
	public static final int ADD_SYM = 190;
	public static final int MOD_SYM = 478;
	public static final int NAME_SYM = 655;
	public static final int H_ = 504;
	public static final int UNDO_SYM = 764;
	public static final int ID = 466;
	public static final int CROSS = 492;
	public static final int LENGTH = 348;
	public static final int IF = 96;
	public static final int QUERY_SYM = 275;
	public static final int MD5 = 425;
	public static final int DEALLOCATE_SYM = 561;
	public static final int EXPORT_SET = 340;
	public static final int REFERENCES = 146;
	public static final int OJ_SYM = 495;
	public static final int COMMIT_SYM = 545;
	public static final int ELSE_SYM = 487;
	public static final int PARTITIONS_SYM = 182;
	public static final int MASTER_SSL_VERIFY_SERVER_CERT = 639;
	public static final int I_ = 505;
	public static final int SQL_THREAD = 734;
	public static final int ANY_OP = 20;
	public static final int IO_SYM = 608;
	public static final int WITH = 53;
	public static final int STATUS_SYM = 742;
	public static final int IS_SYM = 469;
	public static final int REDOFILE_SYM = 699;
	public static final int UTF32 = 776;
	public static final int GBK = 252;
	public static final int UNHEX = 371;
	public static final int BEGIN_SYM = 531;
	public static final int DEFAULT = 80;
	public static final int J_ = 506;
	public static final int PURGE = 692;
	public static final int REDO_BUFFER_SIZE_SYM = 698;
	public static final int DO_SYM = 567;
	public static final int STRCMP = 366;
	public static final int LAST_INSERT_ID = 439;
	public static final int END_SYM = 488;
	public static final int SUBPARTITION_SYM = 183;
	public static final int PROCEDURE = 687;
	public static final int LATIN1_GENERAL_CS = 296;
	public static final int COMPACT_SYM = 173;
	public static final int MODIFY_SYM = 194;
	public static final int ERRORS = 575;
	public static final int VARIANCE = 465;
	public static final int K_ = 507;
	public static final int CHANGED = 540;
	public static final int MINUTE = 279;
	public static final int DROP_VIEW_STMT = 13;
	public static final int EACH_SYM = 570;
	public static final int COMPRESSED_SYM = 171;
	public static final int LEAVES = 616;
	public static final int GREEK = 254;
	public static final int ASENSITIVE_SYM = 525;
	public static final int REPEATABLE_SYM = 704;
	public static final int INSERT_METHOD = 162;
	public static final int MOD = 323;
	public static final int BOOL_SYM = 534;
	public static final int U_ = 517;
	public static final int TRANSACTIONAL_SYM = 755;
	public static final int PROFILE_SYM = 690;
	public static final int SONAME_SYM = 731;
	public static final int AS_SYM = 200;
	public static final int STDDEV_POP = 461;
	public static final int EXIT_SYM = 581;
	public static final int ZEROFILL = 114;
	public static final int PREV_SYM = 685;
	public static final int T_ = 516;
	public static final int UTF16 = 775;
	public static final int UNION_OP = 15;
	public static final int CONNECTION_SYM = 158;
	public static final int BY_SYM = 51;
	public static final int ARMSCII8 = 237;
	public static final int MASTER_SSL_CAPATH_SYM = 634;
	public static final int MONTHNAME = 395;
	public static final int STDDEV_SAMP = 462;
	public static final int ROLLUP_SYM = 54;
	public static final int CHARACTER_SYM = 132;
	public static final int TIS620 = 268;
	public static final int YEARWEEK = 416;
	public static final int IS_USED_LOCK = 443;
	public static final int LOAD = 620;
	public static final int MEDIUM_SYM = 647;
	public static final int TRAILING = 753;
	public static final int TIMESTAMPADD = 406;
	public static final int DEFINER = 223;
	public static final int W_ = 519;
	public static final int ROLLBACK = 714;
	public static final int RESTORE_SYM = 709;
	public static final int UNCOMPRESS = 761;
	public static final int TABLESPACE = 203;
	public static final int ABS = 305;
	public static final int REAL = 120;
	public static final int INET_ATON = 445;
	public static final int PROFILES_SYM = 691;
	public static final int UNION_SYM = 29;
	public static final int DECLARE_SYM = 562;
	public static final int RADIANS = 327;
	public static final int V_ = 518;
	public static final int MIN_ROWS = 167;
	public static final int NONE_SYM = 90;
	public static final int SEPARATOR_SYM = 721;
	public static final int REVERSE = 360;
	public static final int INTEGER_SYM = 118;
	public static final int TO_DAYS = 408;
	public static final int TEMPTABLE_SYM = 222;
	public static final int HEBREW = 255;
	public static final int REBUILD_SYM = 212;
	public static final int SQL_BUFFER_RESULT = 38;
	public static final int PERIOD_ADD = 397;
	public static final int DROP_TAB_STMT = 9;
	public static final int MICROSECOND = 394;
	public static final int SUPER_SYM = 746;
	public static final int ALL_FIELDS = 70;
	public static final int CONTAINS_SYM = 552;
	public static final int Q_ = 513;
	public static final int SWAPS_SYM = 748;
	public static final int LOCKS_SYM = 621;
	public static final int UNCOMPRESSED_LENGTH = 762;
	public static final int PARSER_SYM = 217;
	public static final int BLOCK_SYM = 533;
	public static final int SUBJECT_SYM = 745;
	public static final int X509_SYM = 785;
	public static final int EUCKR = 250;
	public static final int REPLACE = 219;
	public static final int HANDLER_SYM = 597;
	public static final int P_ = 512;
	public static final int NO_WAIT_SYM = 661;
	public static final int INDEX_SYM = 86;
	public static final int CP932 = 247;
	public static final int NUMERIC_SYM = 124;
	public static final int PACK_KEYS_SYM = 168;
	public static final int MACROMAN = 265;
	public static final int DES_ENCRYPT = 423;
	public static final int NVARCHAR_SYM = 664;
	public static final int FALSE_SYM = 303;
	public static final int MID = 355;
	public static final int MEMORY_SYM = 648;
	public static final int HOUR = 280;
	public static final int THAN_SYM = 186;
	public static final int CHANGE = 193;
	public static final int S_ = 515;
	public static final int FLUSH_SYM = 589;
	public static final int COLUMNS_SYM = 180;
	public static final int NEGATION = 480;
	public static final int BIGINT = 119;
	public static final int EXPANSION_SYM = 276;
	public static final int CREATE_TAB_STMT = 8;
	public static final int BIT_XOR = 457;
	public static final int HOUR_MINUTE = 290;
	public static final int VALUE_SYM = 79;
	public static final int ORDER_SYM = 57;
	public static final int UNINSTALL_SYM = 767;
	public static final int IS_FREE_LOCK = 442;
	public static final int BIN = 334;
	public static final int ORDER_BY = 25;
	public static final int BETWEEN = 471;
	public static final int R_ = 514;
	public static final int MAX_QUERIES_PER_HOUR = 643;
	public static final int POINT_SYM = 679;
	public static final int AUTHORS_SYM = 527;
	public static final int VARYING = 778;
	public static final int SSL_SYM = 738;
	public static final int MAKETIME = 393;
	public static final int DAYNAME = 383;
	public static final int CASCADE = 152;
	public static final int FAULTS_SYM = 585;
	public static final int TYPE_SYM = 758;
	public static final int SOUNDEX = 364;
	public static final int FULL = 148;
	public static final int NAMES_SYM = 656;
	public static final int INSERT = 72;
	public static final int PREPARE_SYM = 683;
	public static final int LOG2 = 321;
	public static final int MASTER_POS_WAIT = 444;
	public static final int FLOAT_SYM = 122;
	public static final int EVERY_SYM = 579;
	public static final int UNDOFILE_SYM = 765;
	public static final int CONCAT = 338;
	public static final int KEYBCS2 = 257;
	public static final int OLD_PASSWORD = 426;
	public static final int UNKNOWN_SYM = 768;
	public static final int CODE_SYM = 544;
	public static final int VERSION_SYM = 437;
	public static final int POWER_OP = 479;
	public static final int HOUR_SECOND = 289;
	public static final int PASSWORD = 169;
	public static final int CASE_SYM = 484;
	public static final int STR_TO_DATE = 400;
	public static final int GEOSTD8 = 253;
	public static final int ENCODE = 421;
	public static final int ALTER_TAB_STMT = 10;
	public static final int UJIS = 270;
	public static final int Y_ = 521;
	public static final int MAKE_SET = 354;
	public static final int CEILING = 311;
	public static final int GLOBAL_SYM = 594;
	public static final int DECIMAL_SYM = 123;
	public static final int FROM_DAYS = 388;
	public static final int COPY_SYM = 89;
	public static final int HP8 = 256;
	public static final int WEEKOFYEAR = 415;
	public static final int AFTER_SYM = 192;
	public static final int PROCESSLIST_SYM = 689;
	public static final int READ_SYM = 694;
	public static final int ORD = 357;
	public static final int LOCK = 45;
	public static final int RELAY_LOG_POS_SYM = 701;
	public static final int ROWS_SYM = 716;
	public static final int ML_COMMENT = 800;
	public static final int X_ = 520;
	public static final int PRESERVE_SYM = 684;
	public static final int SJIS = 266;
	public static final int LINESTRING = 619;
	public static final int SYSDATE = 402;
	public static final int ALL = 30;
	public static final int HIGH_PRIORITY = 34;
	public static final int COERCIBILITY = 429;
	public static final int OUTFILE = 672;
	public static final int ASCII_SYM = 238;
	public static final int DOT = 65;
	public static final int CURRENT_TIMESTAMP = 128;
	public static final int RELOAD = 703;
	public static final int PARTITIONING_SYM = 215;
	public static final int PARTIAL = 149;
	public static final int PLUGINS_SYM = 678;
	public static final int USER_VAR_SUBFIX4 = 797;
	public static final int ISOLATION = 610;
	public static final int USER_VAR_SUBFIX3 = 796;
	public static final int SIMPLE_SYM = 150;
	public static final int USER_VAR_SUBFIX2 = 795;
	public static final int USER_VAR_SUBFIX1 = 794;
	public static final int WHILE_SYM = 781;
	public static final int XOR = 467;
	public static final int CRC32 = 315;
	public static final int BYTE_SYM = 536;
	public static final int MUTEX_SYM = 654;
	public static final int VALUES = 78;
	public static final int HOST_SYM = 599;
	public static final int INDEXES = 602;
	public static final int DYNAMIC_SYM = 109;
	public static final int ROW_SYM = 482;
	public static final int ENCLOSED = 572;
	public static final int DUPLICATE_SYM = 75;
	public static final int EXECUTE_SYM = 580;
	public static final int LINEAR_SYM = 177;
	public static final int HELP_SYM = 598;
	public static final int ANY = 470;
	public static final int BEFORE_SYM = 530;
	public static final int Z_ = 522;
	public static final int ESCAPE_SYM = 473;
	public static final int CONTRIBUTORS_SYM = 555;
	public static final int CONV = 312;
	public static final int CONTEXT_SYM = 553;
	public static final int VARIABLES = 777;
	public static final int SIGNED_SYM = 272;
	public static final int FIXED_SYM = 108;
	public static final int KEYS = 196;
	public static final int BINARY = 135;
	public static final int HASH_SYM = 178;
	public static final int MAX_SYM = 452;
	public static final int CAST_SYM = 483;
	public static final int ENGINE_SYM = 155;
	public static final int MASTER_CONNECT_RETRY = 626;
	public static final int RPAD = 362;
	public static final int MAX_USER_CONNECTIONS_SYM = 646;
	public static final int SELECT_STMT = 4;
	public static final int SMALLINT = 115;
	public static final int INSENSITIVE_SYM = 606;
	public static final int DATAFILE_SYM = 560;
	public static final int LIKE_SYM = 99;
	public static final int LAST_DAY = 391;
	public static final int UPDATE_STMT = 7;
	public static final int INNER_SYM = 491;
	public static final int MULTILINESTRING = 651;
	public static final int RELAY_LOG_FILE_SYM = 700;
	public static final int CACHE_SYM = 537;
	public static final int CREATE = 82;
	public static final int SUBPARTITIONS_SYM = 184;
	public static final int RETURN_SYM = 711;
	public static final int TIME_TO_SEC = 404;
	public static final int INITIAL_SIZE_SYM = 604;
	public static final int SPATIAL_SYM = 85;
	public static final int SQL_CACHE_SYM = 39;
	public static final int SQLWARNING_SYM = 737;
	public static final int ACOS = 306;
	public static final int CPU_SYM = 556;
	public static final int LATIN2 = 261;
	public static final int LATIN1 = 260;
	public static final int LATIN7 = 263;
	public static final int HEX_DIGIT_FRAGMENT = 793;
	public static final int POWER = 326;
	public static final int DAYOFYEAR = 386;
	public static final int LATIN5 = 262;
	public static final int DUMPFILE = 569;
	public static final int GEOMETRY_SYM = 592;
	public static final int RESTRICT = 151;
	public static final int DES_KEY_FILE = 564;
	public static final int INSTALL_SYM = 607;
	public static final int LOW_PRIORITY = 67;
	public static final int ASIN = 307;
	public static final int DATE_SUB = 381;
	public static final int SYSTEM_USER = 436;
	public static final int UTF8 = 271;
	public static final int LEAVE_SYM = 615;
	public static final int ALTER = 189;
	public static final int SENSITIVE_SYM = 720;
	public static final int NODEGROUP_SYM = 663;
	public static final int TIME_FORMAT = 403;
	public static final int LONGBLOB = 140;
	public static final int TABLE = 95;
	public static final int VARCHAR = 134;
	public static final int SESSION_USER = 435;
	public static final int SUM = 454;
	public static final int ITERATE_SYM = 612;
	public static final int MULTIPOLYGON = 653;
	public static final int WHITE_SPACE = 798;
	public static final int CHAR_LENGTH = 336;
	public static final int BITAND = 476;
	public static final int UNIX_TIMESTAMP = 410;
	public static final int ANALYZE_SYM = 210;
	public static final int EVENTS_SYM = 578;
	public static final int STRING_SYM = 744;
	public static final int LEFT = 347;
	public static final int BIT_SYM = 111;
	public static final int EQ_SYM = 77;
	public static final int STD = 459;
	public static final int PLUS = 298;
	public static final int OUTER = 494;
	public static final int CP866 = 246;
	public static final int MASTER_USER_SYM = 641;
	public static final int MINUTE_MICROSECOND = 286;
	public static final int REMOVE_SYM = 214;
	public static final int COMPLETION_SYM = 547;
	public static final int HAVING = 56;
	public static final int CHECK_SYM = 103;
	public static final int SEMI = 28;
	public static final int NOT_EQ = 234;
	public static final int VERTBAR = 475;
	public static final int CP852 = 245;
	public static final int DATE_SYM = 125;
	public static final int EXTENDED_SYM = 582;
	public static final int STOP_SYM = 743;
	public static final int CP850 = 244;
	public static final int FROM_BASE64 = 344;
	public static final int FORMAT = 343;
	public static final int MASTER_PORT_SYM = 631;
	public static final int CLOSE_SYM = 543;
	public static final int WEEK = 282;
	public static final int UNSIGNED_SYM = 113;
	public static final int TYPES_SYM = 759;
	public static final int POLYGON = 680;
	public static final int CHAR = 131;
	public static final int TERMINATED = 752;
	public static final int AS_OP = 21;
	public static final int CURTIME = 378;
	public static final int HOSTS_SYM = 600;
	public static final int QUOTE = 358;
	public static final int ENDS_SYM = 573;
	public static final int REQUIRE_SYM = 706;
	public static final int QUARTER = 284;
	public static final int TABLE_CHECKSUM_SYM = 750;
	public static final int TAN = 333;
	public static final int SWE7 = 267;
	public static final int PERIOD_DIFF = 398;
	public static final int HOUR_MICROSECOND = 288;
	public static final int AND_SYM = 468;
	public static final int BIG5 = 239;
	public static final int SELECT = 31;
	public static final int INTO = 73;
	public static final int UNCOMMITTED_SYM = 760;
	public static final int DELAYED_SYM = 563;
	public static final int MAX_CONNECTIONS_PER_HOUR = 642;
	public static final int LTRIM = 353;
	public static final int INOUT_SYM = 605;
	public static final int DAY_MICROSECOND = 291;
	public static final int SECOND = 278;
	public static final int FILE_SYM = 588;
	public static final int LOG10 = 320;
	public static final int UNICODE_SYM = 766;
	public static final int SQL_NO_CACHE_SYM = 40;
	public static final int NO_WRITE_TO_BINLOG = 662;
	public static final int SPECIFIC_SYM = 733;
	public static final int CIPHER_SYM = 541;
	public static final int FOR_SYM = 43;
	public static final int MAX_UPDATES_PER_HOUR = 645;
	public static final int TABLES = 751;
	public static final int SHIFT_LEFT = 26;
	public static final int DUAL_SYM = 568;
	public static final int TRIGGERS_SYM = 757;
	public static final int DELETE_SYM = 66;
	public static final int FOUND_ROWS = 438;
	public static final int ADDTIME = 375;
	public static final int MODE_SYM = 48;
	public static final int PORT_SYM = 681;
	public static final int ROUND = 329;
	public static final int ONE_SYM = 666;
	public static final int KEY_BLOCK_SIZE = 165;
	public static final int GET_LOCK = 440;
	public static final int IN_SYM = 46;
	public static final int DISTINCTROW = 33;
	public static final int STARTS_SYM = 741;
	public static final int WHERE = 49;
	public static final int VAR_SAMP = 464;
	public static final int ROUTINE_SYM = 715;
	public static final int UTC_TIMESTAMP = 413;
	public static final int LIMIT = 60;
	public static final int INSERT_STMT = 6;
	public static final int SPACE = 365;
	public static final int ENABLE_SYM = 197;
	public static final int USAGE = 772;
	public static final int DATA_SYM = 159;
	public static final int YEAR_MONTH = 295;
	public static final int MACCE = 264;
	public static final int HEX = 345;
	public static final int COMMA = 52;
	public static final int MASTER_SSL_KEY_SYM = 637;
	public static final int OFFSET_SYM = 61;
	public static final int WAIT_SYM = 779;
	public static final int READ_WRITE_SYM = 695;
	public static final int AT_SYM = 526;
	public static final int CHECKSUM_SYM = 157;
	public static final int USE_FRM = 773;
	public static final int FULLTEXT_SYM = 84;
	public static final int EUCJPMS = 249;
	public static final int GRANT = 595;
	public static final int VARBINARY = 136;
	public static final int OPEN_SYM = 667;
	public static final int UNLOCK_SYM = 769;
	public static final int DATETIME = 129;
	public static final int LONG_SYM = 624;
	public static final int SOUNDS_SYM = 472;
	public static final int DEC8 = 248;
	public static final int MODIFIES_SYM = 650;
	public static final int SQRT = 332;
	public static final int ACCESSIBLE_SYM = 523;
	public static final int SUBSTRING = 368;
	public static final int DAY_SECOND = 292;
	public static final int BLOB_SYM = 138;
	public static final int LOCATE = 350;
	public static final int CROSECOND = 557;
	public static final int MIGRATE_SYM = 649;
	public static final int UNION_ALL_OP = 16;
	public static final int RESOURCES = 708;
	public static final int INFILE = 603;
	public static final int LET = 235;
	public static final int IGNORE_SYM = 69;
	public static final int DES_DECRYPT = 422;
	public static final int UTF16LE = 774;
	public static final int USING_SYM = 71;
	public static final int LOCAL_SYM = 230;
	public static final int UNIQUE_SYM = 83;
	public static final int NOW = 396;
	public static final int EOF = -1;
	public static final int FOREIGN = 102;
	public static final int PRIVILEGES = 686;
	public static final int ELSIF_SYM = 571;
	public static final int MONTH = 283;
	public static final int UNDEFINED_SYM = 220;
	public static final int ACTION = 154;
	public static final int UTC_DATE = 411;
	public static final int IDENTIFIED_SYM = 601;
	public static final int USER_VAR = 481;
	public static final int WEIGHT_STRING = 373;
	public static final int IMPORT = 204;
	public static final int SIN = 331;
	public static final int NO_SYM = 153;
	public static final int STORAGE_SYM = 188;
	public static final int TRUE_SYM = 302;
	public static final int AUTO_INCREMENT = 104;
	public static final int TEXT_SYM = 142;
	public static final int SERIAL_SYM = 722;
	public static final int TINYBLOB = 137;
	public static final int DAYOFWEEK = 385;
	public static final int WRAPPER_SYM = 783;
	public static final int DELAY_KEY_WRITE_SYM = 161;
	public static final int LOGFILE_SYM = 622;
	public static final int SLAVE = 728;
	public static final int SHARE_SYM = 47;
	public static final int ELT = 339;
	public static final int PRIMARY_SYM = 101;
	public static final int AES_DECRYPT = 419;
	public static final int MEDIUMTEXT = 143;
	public static final int UPGRADE_SYM = 771;
	public static final int MERGE_SYM = 221;
	public static final int KILL_SYM = 613;
	public static final int LANGUAGE = 274;
	public static final int CALL_SYM = 538;
	public static final int MAKEDATE = 392;
	public static final int REAL_NUMBER = 300;
	public static final int TRIM = 370;
	public static final int GRANTS = 596;
	public static final int REPEAT = 359;
	public static final int UTC_TIME = 412;
	public static final int MASTER_SSL_SYM = 638;
	public static final int DISABLE_SYM = 195;
	public static final int STATS_AUTO_RECALC = 174;
	public static final int CONVERT_TZ = 376;
	public static final int RENAME = 198;
	public static final int REPLICATION = 705;
	public static final int OPTION = 231;
	public static final int JOIN_SYM = 493;
	public static final int START_SYM = 739;
	public static final int EXCLUSIVE_SYM = 92;
	public static final int OPTIONALLY = 668;
	public static final int OUT_SYM = 671;
	public static final int RESUME_SYM = 710;
	public static final int NEXT_SYM = 660;
	public static final int ENGINES_SYM = 574;
	public static final int CHARSET = 428;
	public static final int SOCKET_SYM = 730;
	public static final int DAYOFMONTH = 384;
	public static final int BINLOG_SYM = 532;
	public static final int LPAREN = 63;
	public static final int ASTERISK = 62;
	public static final int RECOVER_SYM = 697;
	public static final int DAY_HOUR = 294;
	public static final int CREATE_VIEW_STMT = 11;
	public static final int COLLATION = 430;
	public static final int RAND = 328;
	public static final int TIMEDIFF = 405;
	public static final int FROM_UNIXTIME = 389;
	public static final int EXISTS = 98;
	public static final int INET_NTOA = 446;
	public static final int RETURNS_SYM = 712;
	public static final int UCS2 = 269;
	public static final int WRITE_SYM = 784;
	public static final int TO_SYM = 199;
	public static final int LOGS_SYM = 623;
	public static final int SESSION_SYM = 725;
	public static final int CONSISTENT_SYM = 551;
	public static final int REDUNDANT_SYM = 172;
	public static final int GROUP_BY = 24;
	public static final int SCHEMA = 433;
	public static final int CLIENT_SYM = 542;
	public static final int ENUM = 145;
	public static final int DROP = 93;
	public static final int MASTER_SSL_CERT_SYM = 635;
	public static final int DISK_SYM = 566;
	public static final int REVOKE = 713;
	public static final int PROCESS = 688;
	public static final int XA_SYM = 786;
	public static final int UNTIL_SYM = 770;
	public static final int SIGN = 330;
	public static final int LOG = 322;
	public static final int OWNER_SYM = 673;
	public static final int OR_SYM = 218;
	public static final int MIN_SYM = 453;
	public static final int TO_SECONDS = 409;
	public static final int REPAIR = 213;
	public static final int WEEKDAY = 414;
	public static final int POW = 325;
	public static final int COT = 314;
	public static final int SECURITY_SYM = 226;
	public static final int EXP = 317;
	public static final int TRUNCATE_TAB_STMT = 14;
	public static final int DATE_FORMAT = 380;
	public static final int COS = 313;
	public static final int COLUMN_SPEC = 23;
	public static final int EVENT_SYM = 577;
	public static final int BOOLEAN_SYM = 277;
	public static final int SAVEPOINT = 718;
	public static final int FIRST_SYM = 163;
	public static final int TINYINT = 112;
	public static final int AES_ENCRYPT = 418;
	public static final int BOTH = 535;
	public static final int ATAN = 309;
	public static final int NOT_SYM = 97;
	public static final int CP1256 = 242;
	public static final int COMMENT_SYM = 105;
	public static final int RELEASE_SYM = 702;
	public static final int WARNINGS = 780;
	public static final int CP1251 = 241;
	public static final int CP1250 = 240;
	public static final int FUNCTION_SYM = 591;
	public static final int CURSOR_SYM = 559;
	public static final int LIST_SYM = 181;
	public static final int DATE_ADD = 379;
	public static final int UNDO_BUFFER_SIZE_SYM = 763;
	public static final int CP1257 = 243;
	public static final int COLUMN_FORMAT = 107;
	public static final int CONDITION_SYM = 550;
	public static final int SERVER_SYM = 724;
	public static final int NOT_EXIST_OP = 18;
	public static final int VAR_POP = 463;
	public static final int TIMESTAMPDIFF = 407;
	public static final int TRIGGER_SYM = 756;
	public static final int FIELD = 341;
	public static final int SUBTIME = 401;
	public static final int ESCAPED = 576;
	public static final int FROM = 42;
	public static final int DISTINCT = 32;
	public static final int TEMPORARY = 94;
	public static final int RTRIM = 363;
	public static final int PAGE_CHECKSUM_SYM = 674;
	public static final int SEC_TO_TIME = 399;
	public static final int FOUND_SYM = 590;
	public static final int GTH = 233;
	public static final int UPDATE = 44;
	public static final int ONE_SHOT_SYM = 665;
	public static final int AUTOEXTEND_SIZE_SYM = 528;
	public static final int SCHEDULE_SYM = 719;
	public static final int RELEASE_LOCK = 441;
	public static final int INPLACE_SYM = 88;
	public static final int ALGORITHM_SYM = 87;
	public static final int DAY_SYM = 281;
	public static final int EXTRACT = 387;
	public static final int CUBE_SYM = 558;
	public static final int EXCHANGE_SYM = 209;
	public static final int STATS_PERSISTENT = 175;
	public static final int WORK_SYM = 782;
	public static final int SET_VAR = 789;
	public static final int IFNULL = 417;
	public static final int MAX_SIZE_SYM = 644;
	public static final int LAST_SYM = 164;
	public static final int NATIONAL_SYM = 657;
	public static final int KEY_SYM = 76;
	public static final int PHASE_SYM = 676;
	public static final int LTH = 232;
	public static final int IPC_SYM = 609;
	public static final int SET_SYM = 81;
	public static final int DECODE = 420;
	public static final int STARTING = 740;
	public static final int CEIL = 310;
	public static final int CHAIN_SYM = 539;
	public static final int READ_ONLY_SYM = 693;
	public static final int DESC = 59;
	public static final int WHEN_SYM = 485;
	public static final int SQL_SYM = 225;
	public static final int CONTINUE_SYM = 554;
	public static final int SOURCE_SYM = 732;

	// delegates
	// delegators

	public MySQLParser(TokenStream input) {
		this(input, new RecognizerSharedState());
	}

	public MySQLParser(TokenStream input, RecognizerSharedState state) {
		super(input, state);

	}

	protected TreeAdaptor adaptor = new CommonTreeAdaptor();

	public void setTreeAdaptor(TreeAdaptor adaptor) {
		this.adaptor = adaptor;
	}

	public TreeAdaptor getTreeAdaptor() {
		return adaptor;
	}

	public String[] getTokenNames() {
		return MySQLParser.tokenNames;
	}

	public String getGrammarFileName() {
		return "C:\\Users\\grand\\Desktop\\another\\MySQL.g";
	}

	public static class program_return extends ParserRuleReturnScope {
		Object tree;

		public Object getTree() {
			return tree;
		}
	};

	// $ANTLR start "program"
	// C:\\Users\\grand\\Desktop\\another\\MySQL.g:42:1: program : ( SHIFT_LEFT
	// SHIFT_RIGHT )? ( data_manipulation_statements |
	// data_definition_statements ) ( SEMI ( data_manipulation_statements |
	// data_definition_statements ) )* ( SEMI )? ;
	public final MySQLParser.program_return program()
			throws RecognitionException {
		MySQLParser.program_return retval = new MySQLParser.program_return();
		retval.start = input.LT(1);

		Object root_0 = null;

		Token SHIFT_LEFT1 = null;
		Token SHIFT_RIGHT2 = null;
		Token SEMI5 = null;
		Token SEMI8 = null;
		MySQLParser.data_manipulation_statements_return data_manipulation_statements3 = null;

		MySQLParser.data_definition_statements_return data_definition_statements4 = null;

		MySQLParser.data_manipulation_statements_return data_manipulation_statements6 = null;

		MySQLParser.data_definition_statements_return data_definition_statements7 = null;

		Object SHIFT_LEFT1_tree = null;
		Object SHIFT_RIGHT2_tree = null;
		Object SEMI5_tree = null;
		Object SEMI8_tree = null;

		try {
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:42:9: ( ( SHIFT_LEFT
			// SHIFT_RIGHT )? ( data_manipulation_statements |
			// data_definition_statements ) ( SEMI (
			// data_manipulation_statements | data_definition_statements ) )* (
			// SEMI )? )
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:42:11: ( SHIFT_LEFT
			// SHIFT_RIGHT )? ( data_manipulation_statements |
			// data_definition_statements ) ( SEMI (
			// data_manipulation_statements | data_definition_statements ) )* (
			// SEMI )?
			{
				root_0 = (Object) adaptor.nil();

				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:42:11: (
				// SHIFT_LEFT SHIFT_RIGHT )?
				int alt1 = 2;
				int LA1_0 = input.LA(1);

				if ((LA1_0 == SHIFT_LEFT)) {
					alt1 = 1;
				}
				switch (alt1) {
				case 1:
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:42:12: SHIFT_LEFT
				// SHIFT_RIGHT
				{
					SHIFT_LEFT1 = (Token) match(input, SHIFT_LEFT,
							FOLLOW_SHIFT_LEFT_in_program110);
					if (state.failed)
						return retval;
					SHIFT_RIGHT2 = (Token) match(input, SHIFT_RIGHT,
							FOLLOW_SHIFT_RIGHT_in_program113);
					if (state.failed)
						return retval;

				}
					break;

				}

				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:43:2: (
				// data_manipulation_statements | data_definition_statements )
				int alt2 = 2;
				int LA2_0 = input.LA(1);

				if ((LA2_0 == SELECT || LA2_0 == UPDATE || LA2_0 == DELETE_SYM || LA2_0 == INSERT)) {
					alt2 = 1;
				} else if ((LA2_0 == CREATE || LA2_0 == DROP || LA2_0 == ALTER
						|| LA2_0 == RENAME || LA2_0 == TRUNCATE)) {
					alt2 = 2;
				} else {
					if (state.backtracking > 0) {
						state.failed = true;
						return retval;
					}
					NoViableAltException nvae = new NoViableAltException("", 2,
							0, input);

					throw nvae;
				}
				switch (alt2) {
				case 1:
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:43:4:
				// data_manipulation_statements
				{
					pushFollow(FOLLOW_data_manipulation_statements_in_program123);
					data_manipulation_statements3 = data_manipulation_statements();

					state._fsp--;
					if (state.failed)
						return retval;
					if (state.backtracking == 0)
						adaptor.addChild(root_0,
								data_manipulation_statements3.getTree());

				}
					break;
				case 2:
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:43:35:
				// data_definition_statements
				{
					pushFollow(FOLLOW_data_definition_statements_in_program127);
					data_definition_statements4 = data_definition_statements();

					state._fsp--;
					if (state.failed)
						return retval;
					if (state.backtracking == 0)
						adaptor.addChild(root_0,
								data_definition_statements4.getTree());

				}
					break;

				}

				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:43:63: ( SEMI (
				// data_manipulation_statements | data_definition_statements )
				// )*
				loop4: do {
					int alt4 = 2;
					int LA4_0 = input.LA(1);

					if ((LA4_0 == SEMI)) {
						int LA4_1 = input.LA(2);

						if ((LA4_1 == SELECT || LA4_1 == UPDATE
								|| LA4_1 == DELETE_SYM || LA4_1 == INSERT
								|| LA4_1 == CREATE || LA4_1 == DROP
								|| LA4_1 == ALTER || LA4_1 == RENAME || LA4_1 == TRUNCATE)) {
							alt4 = 1;
						}

					}

					switch (alt4) {
					case 1:
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:43:64: SEMI (
					// data_manipulation_statements | data_definition_statements
					// )
					{
						SEMI5 = (Token) match(input, SEMI,
								FOLLOW_SEMI_in_program131);
						if (state.failed)
							return retval;
						// C:\\Users\\grand\\Desktop\\another\\MySQL.g:43:70: (
						// data_manipulation_statements |
						// data_definition_statements )
						int alt3 = 2;
						int LA3_0 = input.LA(1);

						if ((LA3_0 == SELECT || LA3_0 == UPDATE
								|| LA3_0 == DELETE_SYM || LA3_0 == INSERT)) {
							alt3 = 1;
						} else if ((LA3_0 == CREATE || LA3_0 == DROP
								|| LA3_0 == ALTER || LA3_0 == RENAME || LA3_0 == TRUNCATE)) {
							alt3 = 2;
						} else {
							if (state.backtracking > 0) {
								state.failed = true;
								return retval;
							}
							NoViableAltException nvae = new NoViableAltException(
									"", 3, 0, input);

							throw nvae;
						}
						switch (alt3) {
						case 1:
						// C:\\Users\\grand\\Desktop\\another\\MySQL.g:43:71:
						// data_manipulation_statements
						{
							pushFollow(FOLLOW_data_manipulation_statements_in_program135);
							data_manipulation_statements6 = data_manipulation_statements();

							state._fsp--;
							if (state.failed)
								return retval;
							if (state.backtracking == 0)
								adaptor.addChild(root_0,
										data_manipulation_statements6.getTree());

						}
							break;
						case 2:
						// C:\\Users\\grand\\Desktop\\another\\MySQL.g:43:102:
						// data_definition_statements
						{
							pushFollow(FOLLOW_data_definition_statements_in_program139);
							data_definition_statements7 = data_definition_statements();

							state._fsp--;
							if (state.failed)
								return retval;
							if (state.backtracking == 0)
								adaptor.addChild(root_0,
										data_definition_statements7.getTree());

						}
							break;

						}

					}
						break;

					default:
						break loop4;
					}
				} while (true);

				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:44:2: ( SEMI )?
				int alt5 = 2;
				int LA5_0 = input.LA(1);

				if ((LA5_0 == SEMI)) {
					alt5 = 1;
				}
				switch (alt5) {
				case 1:
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:44:3: SEMI
				{
					SEMI8 = (Token) match(input, SEMI,
							FOLLOW_SEMI_in_program146);
					if (state.failed)
						return retval;

				}
					break;

				}

			}

			retval.stop = input.LT(-1);

			if (state.backtracking == 0) {

				retval.tree = (Object) adaptor.rulePostProcessing(root_0);
				adaptor.setTokenBoundaries(retval.tree, retval.start,
						retval.stop);
			}
		} catch (RecognitionException re) {
			reportError(re);
			recover(input, re);
			retval.tree = (Object) adaptor.errorNode(input, retval.start,
					input.LT(-1), re);

		} finally {
		}
		return retval;
	}

	// $ANTLR end "program"

	public static class data_manipulation_statements_return extends
			ParserRuleReturnScope {
		Object tree;

		public Object getTree() {
			return tree;
		}
	};

	// $ANTLR start "data_manipulation_statements"
	// C:\\Users\\grand\\Desktop\\another\\MySQL.g:47:1:
	// data_manipulation_statements : ( select_statement -> ^( SELECT_STMT
	// select_statement ) | delete_statements -> ^( DELETE_STMT
	// delete_statements ) | insert_statements -> ^( INSERT_STMT
	// insert_statements ) | update_statements -> ^( UPDATE_STMT
	// update_statements ) );
	public final MySQLParser.data_manipulation_statements_return data_manipulation_statements()
			throws RecognitionException {
		MySQLParser.data_manipulation_statements_return retval = new MySQLParser.data_manipulation_statements_return();
		retval.start = input.LT(1);

		Object root_0 = null;

		MySQLParser.select_statement_return select_statement9 = null;

		MySQLParser.delete_statements_return delete_statements10 = null;

		MySQLParser.insert_statements_return insert_statements11 = null;

		MySQLParser.update_statements_return update_statements12 = null;

		RewriteRuleSubtreeStream stream_update_statements = new RewriteRuleSubtreeStream(
				adaptor, "rule update_statements");
		RewriteRuleSubtreeStream stream_select_statement = new RewriteRuleSubtreeStream(
				adaptor, "rule select_statement");
		RewriteRuleSubtreeStream stream_delete_statements = new RewriteRuleSubtreeStream(
				adaptor, "rule delete_statements");
		RewriteRuleSubtreeStream stream_insert_statements = new RewriteRuleSubtreeStream(
				adaptor, "rule insert_statements");
		try {
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:47:29: (
			// select_statement -> ^( SELECT_STMT select_statement ) |
			// delete_statements -> ^( DELETE_STMT delete_statements ) |
			// insert_statements -> ^( INSERT_STMT insert_statements ) |
			// update_statements -> ^( UPDATE_STMT update_statements ) )
			int alt6 = 4;
			switch (input.LA(1)) {
			case SELECT: {
				alt6 = 1;
			}
				break;
			case DELETE_SYM: {
				alt6 = 2;
			}
				break;
			case INSERT: {
				alt6 = 3;
			}
				break;
			case UPDATE: {
				alt6 = 4;
			}
				break;
			default:
				if (state.backtracking > 0) {
					state.failed = true;
					return retval;
				}
				NoViableAltException nvae = new NoViableAltException("", 6, 0,
						input);

				throw nvae;
			}

			switch (alt6) {
			case 1:
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:48:4:
			// select_statement
			{
				pushFollow(FOLLOW_select_statement_in_data_manipulation_statements162);
				select_statement9 = select_statement();

				state._fsp--;
				if (state.failed)
					return retval;
				if (state.backtracking == 0)
					stream_select_statement.add(select_statement9.getTree());

				// AST REWRITE
				// elements: select_statement
				// token labels:
				// rule labels: retval
				// token list labels:
				// rule list labels:
				// wildcard labels:
				if (state.backtracking == 0) {
					retval.tree = root_0;
					RewriteRuleSubtreeStream stream_retval = new RewriteRuleSubtreeStream(
							adaptor, "rule retval",
							retval != null ? retval.tree : null);

					root_0 = (Object) adaptor.nil();
					// 48:21: -> ^( SELECT_STMT select_statement )
					{
						// C:\\Users\\grand\\Desktop\\another\\MySQL.g:48:24: ^(
						// SELECT_STMT select_statement )
						{
							Object root_1 = (Object) adaptor.nil();
							root_1 = (Object) adaptor.becomeRoot(
									(Object) adaptor.create(SELECT_STMT,
											"SELECT_STMT"), root_1);

							adaptor.addChild(root_1,
									stream_select_statement.nextTree());

							adaptor.addChild(root_0, root_1);
						}

					}

					retval.tree = root_0;
				}
			}
				break;
			case 2:
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:49:4:
			// delete_statements
			{
				pushFollow(FOLLOW_delete_statements_in_data_manipulation_statements175);
				delete_statements10 = delete_statements();

				state._fsp--;
				if (state.failed)
					return retval;
				if (state.backtracking == 0)
					stream_delete_statements.add(delete_statements10.getTree());

				// AST REWRITE
				// elements: delete_statements
				// token labels:
				// rule labels: retval
				// token list labels:
				// rule list labels:
				// wildcard labels:
				if (state.backtracking == 0) {
					retval.tree = root_0;
					RewriteRuleSubtreeStream stream_retval = new RewriteRuleSubtreeStream(
							adaptor, "rule retval",
							retval != null ? retval.tree : null);

					root_0 = (Object) adaptor.nil();
					// 49:22: -> ^( DELETE_STMT delete_statements )
					{
						// C:\\Users\\grand\\Desktop\\another\\MySQL.g:49:25: ^(
						// DELETE_STMT delete_statements )
						{
							Object root_1 = (Object) adaptor.nil();
							root_1 = (Object) adaptor.becomeRoot(
									(Object) adaptor.create(DELETE_STMT,
											"DELETE_STMT"), root_1);

							adaptor.addChild(root_1,
									stream_delete_statements.nextTree());

							adaptor.addChild(root_0, root_1);
						}

					}

					retval.tree = root_0;
				}
			}
				break;
			case 3:
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:50:4:
			// insert_statements
			{
				pushFollow(FOLLOW_insert_statements_in_data_manipulation_statements188);
				insert_statements11 = insert_statements();

				state._fsp--;
				if (state.failed)
					return retval;
				if (state.backtracking == 0)
					stream_insert_statements.add(insert_statements11.getTree());

				// AST REWRITE
				// elements: insert_statements
				// token labels:
				// rule labels: retval
				// token list labels:
				// rule list labels:
				// wildcard labels:
				if (state.backtracking == 0) {
					retval.tree = root_0;
					RewriteRuleSubtreeStream stream_retval = new RewriteRuleSubtreeStream(
							adaptor, "rule retval",
							retval != null ? retval.tree : null);

					root_0 = (Object) adaptor.nil();
					// 50:22: -> ^( INSERT_STMT insert_statements )
					{
						// C:\\Users\\grand\\Desktop\\another\\MySQL.g:50:25: ^(
						// INSERT_STMT insert_statements )
						{
							Object root_1 = (Object) adaptor.nil();
							root_1 = (Object) adaptor.becomeRoot(
									(Object) adaptor.create(INSERT_STMT,
											"INSERT_STMT"), root_1);

							adaptor.addChild(root_1,
									stream_insert_statements.nextTree());

							adaptor.addChild(root_0, root_1);
						}

					}

					retval.tree = root_0;
				}
			}
				break;
			case 4:
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:51:4:
			// update_statements
			{
				pushFollow(FOLLOW_update_statements_in_data_manipulation_statements201);
				update_statements12 = update_statements();

				state._fsp--;
				if (state.failed)
					return retval;
				if (state.backtracking == 0)
					stream_update_statements.add(update_statements12.getTree());

				// AST REWRITE
				// elements: update_statements
				// token labels:
				// rule labels: retval
				// token list labels:
				// rule list labels:
				// wildcard labels:
				if (state.backtracking == 0) {
					retval.tree = root_0;
					RewriteRuleSubtreeStream stream_retval = new RewriteRuleSubtreeStream(
							adaptor, "rule retval",
							retval != null ? retval.tree : null);

					root_0 = (Object) adaptor.nil();
					// 51:22: -> ^( UPDATE_STMT update_statements )
					{
						// C:\\Users\\grand\\Desktop\\another\\MySQL.g:51:25: ^(
						// UPDATE_STMT update_statements )
						{
							Object root_1 = (Object) adaptor.nil();
							root_1 = (Object) adaptor.becomeRoot(
									(Object) adaptor.create(UPDATE_STMT,
											"UPDATE_STMT"), root_1);

							adaptor.addChild(root_1,
									stream_update_statements.nextTree());

							adaptor.addChild(root_0, root_1);
						}

					}

					retval.tree = root_0;
				}
			}
				break;

			}
			retval.stop = input.LT(-1);

			if (state.backtracking == 0) {

				retval.tree = (Object) adaptor.rulePostProcessing(root_0);
				adaptor.setTokenBoundaries(retval.tree, retval.start,
						retval.stop);
			}
		} catch (RecognitionException re) {
			reportError(re);
			recover(input, re);
			retval.tree = (Object) adaptor.errorNode(input, retval.start,
					input.LT(-1), re);

		} finally {
		}
		return retval;
	}

	// $ANTLR end "data_manipulation_statements"

	public static class data_definition_statements_return extends
			ParserRuleReturnScope {
		Object tree;

		public Object getTree() {
			return tree;
		}
	};

	// $ANTLR start "data_definition_statements"
	// C:\\Users\\grand\\Desktop\\another\\MySQL.g:54:1:
	// data_definition_statements : ( create_table_statement -> ^(
	// CREATE_TAB_STMT create_table_statement ) | alter_table_statement -> ^(
	// ALTER_TAB_STMT alter_table_statement ) | drop_table_statement -> ^(
	// DROP_TAB_STMT drop_table_statement ) | create_view_statement -> ^(
	// CREATE_VIEW_STMT create_view_statement ) | alter_view_statement |
	// rename_table_statement -> ^( RENAME_TAB_STMT rename_table_statement ) |
	// drop_view_statement -> ^( DROP_VIEW_STMT drop_view_statement ) |
	// truncate_table_statement -> ^( TRUNCATE_TAB_STMT truncate_table_statement
	// ) | create_index_statement -> | drop_index_statement ->);
	public final MySQLParser.data_definition_statements_return data_definition_statements()
			throws RecognitionException {
		MySQLParser.data_definition_statements_return retval = new MySQLParser.data_definition_statements_return();
		retval.start = input.LT(1);

		Object root_0 = null;

		MySQLParser.create_table_statement_return create_table_statement13 = null;

		MySQLParser.alter_table_statement_return alter_table_statement14 = null;

		MySQLParser.drop_table_statement_return drop_table_statement15 = null;

		MySQLParser.create_view_statement_return create_view_statement16 = null;

		MySQLParser.alter_view_statement_return alter_view_statement17 = null;

		MySQLParser.rename_table_statement_return rename_table_statement18 = null;

		MySQLParser.drop_view_statement_return drop_view_statement19 = null;

		MySQLParser.truncate_table_statement_return truncate_table_statement20 = null;

		MySQLParser.create_index_statement_return create_index_statement21 = null;

		MySQLParser.drop_index_statement_return drop_index_statement22 = null;

		RewriteRuleSubtreeStream stream_rename_table_statement = new RewriteRuleSubtreeStream(
				adaptor, "rule rename_table_statement");
		RewriteRuleSubtreeStream stream_create_view_statement = new RewriteRuleSubtreeStream(
				adaptor, "rule create_view_statement");
		RewriteRuleSubtreeStream stream_drop_table_statement = new RewriteRuleSubtreeStream(
				adaptor, "rule drop_table_statement");
		RewriteRuleSubtreeStream stream_drop_index_statement = new RewriteRuleSubtreeStream(
				adaptor, "rule drop_index_statement");
		RewriteRuleSubtreeStream stream_drop_view_statement = new RewriteRuleSubtreeStream(
				adaptor, "rule drop_view_statement");
		RewriteRuleSubtreeStream stream_alter_table_statement = new RewriteRuleSubtreeStream(
				adaptor, "rule alter_table_statement");
		RewriteRuleSubtreeStream stream_truncate_table_statement = new RewriteRuleSubtreeStream(
				adaptor, "rule truncate_table_statement");
		RewriteRuleSubtreeStream stream_create_index_statement = new RewriteRuleSubtreeStream(
				adaptor, "rule create_index_statement");
		RewriteRuleSubtreeStream stream_create_table_statement = new RewriteRuleSubtreeStream(
				adaptor, "rule create_table_statement");
		try {
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:54:27: (
			// create_table_statement -> ^( CREATE_TAB_STMT
			// create_table_statement ) | alter_table_statement -> ^(
			// ALTER_TAB_STMT alter_table_statement ) | drop_table_statement ->
			// ^( DROP_TAB_STMT drop_table_statement ) | create_view_statement
			// -> ^( CREATE_VIEW_STMT create_view_statement ) |
			// alter_view_statement | rename_table_statement -> ^(
			// RENAME_TAB_STMT rename_table_statement ) | drop_view_statement ->
			// ^( DROP_VIEW_STMT drop_view_statement ) |
			// truncate_table_statement -> ^( TRUNCATE_TAB_STMT
			// truncate_table_statement ) | create_index_statement -> |
			// drop_index_statement ->)
			int alt7 = 10;
			alt7 = dfa7.predict(input);
			switch (alt7) {
			case 1:
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:56:2:
			// create_table_statement
			{
				pushFollow(FOLLOW_create_table_statement_in_data_definition_statements222);
				create_table_statement13 = create_table_statement();

				state._fsp--;
				if (state.failed)
					return retval;
				if (state.backtracking == 0)
					stream_create_table_statement.add(create_table_statement13
							.getTree());

				// AST REWRITE
				// elements: create_table_statement
				// token labels:
				// rule labels: retval
				// token list labels:
				// rule list labels:
				// wildcard labels:
				if (state.backtracking == 0) {
					retval.tree = root_0;
					RewriteRuleSubtreeStream stream_retval = new RewriteRuleSubtreeStream(
							adaptor, "rule retval",
							retval != null ? retval.tree : null);

					root_0 = (Object) adaptor.nil();
					// 56:25: -> ^( CREATE_TAB_STMT create_table_statement )
					{
						// C:\\Users\\grand\\Desktop\\another\\MySQL.g:56:28: ^(
						// CREATE_TAB_STMT create_table_statement )
						{
							Object root_1 = (Object) adaptor.nil();
							root_1 = (Object) adaptor.becomeRoot(
									(Object) adaptor.create(CREATE_TAB_STMT,
											"CREATE_TAB_STMT"), root_1);

							adaptor.addChild(root_1,
									stream_create_table_statement.nextTree());

							adaptor.addChild(root_0, root_1);
						}

					}

					retval.tree = root_0;
				}
			}
				break;
			case 2:
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:57:4:
			// alter_table_statement
			{
				pushFollow(FOLLOW_alter_table_statement_in_data_definition_statements235);
				alter_table_statement14 = alter_table_statement();

				state._fsp--;
				if (state.failed)
					return retval;
				if (state.backtracking == 0)
					stream_alter_table_statement.add(alter_table_statement14
							.getTree());

				// AST REWRITE
				// elements: alter_table_statement
				// token labels:
				// rule labels: retval
				// token list labels:
				// rule list labels:
				// wildcard labels:
				if (state.backtracking == 0) {
					retval.tree = root_0;
					RewriteRuleSubtreeStream stream_retval = new RewriteRuleSubtreeStream(
							adaptor, "rule retval",
							retval != null ? retval.tree : null);

					root_0 = (Object) adaptor.nil();
					// 57:26: -> ^( ALTER_TAB_STMT alter_table_statement )
					{
						// C:\\Users\\grand\\Desktop\\another\\MySQL.g:57:29: ^(
						// ALTER_TAB_STMT alter_table_statement )
						{
							Object root_1 = (Object) adaptor.nil();
							root_1 = (Object) adaptor.becomeRoot(
									(Object) adaptor.create(ALTER_TAB_STMT,
											"ALTER_TAB_STMT"), root_1);

							adaptor.addChild(root_1,
									stream_alter_table_statement.nextTree());

							adaptor.addChild(root_0, root_1);
						}

					}

					retval.tree = root_0;
				}
			}
				break;
			case 3:
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:58:4:
			// drop_table_statement
			{
				pushFollow(FOLLOW_drop_table_statement_in_data_definition_statements248);
				drop_table_statement15 = drop_table_statement();

				state._fsp--;
				if (state.failed)
					return retval;
				if (state.backtracking == 0)
					stream_drop_table_statement.add(drop_table_statement15
							.getTree());

				// AST REWRITE
				// elements: drop_table_statement
				// token labels:
				// rule labels: retval
				// token list labels:
				// rule list labels:
				// wildcard labels:
				if (state.backtracking == 0) {
					retval.tree = root_0;
					RewriteRuleSubtreeStream stream_retval = new RewriteRuleSubtreeStream(
							adaptor, "rule retval",
							retval != null ? retval.tree : null);

					root_0 = (Object) adaptor.nil();
					// 58:25: -> ^( DROP_TAB_STMT drop_table_statement )
					{
						// C:\\Users\\grand\\Desktop\\another\\MySQL.g:58:28: ^(
						// DROP_TAB_STMT drop_table_statement )
						{
							Object root_1 = (Object) adaptor.nil();
							root_1 = (Object) adaptor.becomeRoot(
									(Object) adaptor.create(DROP_TAB_STMT,
											"DROP_TAB_STMT"), root_1);

							adaptor.addChild(root_1,
									stream_drop_table_statement.nextTree());

							adaptor.addChild(root_0, root_1);
						}

					}

					retval.tree = root_0;
				}
			}
				break;
			case 4:
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:60:4:
			// create_view_statement
			{
				pushFollow(FOLLOW_create_view_statement_in_data_definition_statements263);
				create_view_statement16 = create_view_statement();

				state._fsp--;
				if (state.failed)
					return retval;
				if (state.backtracking == 0)
					stream_create_view_statement.add(create_view_statement16
							.getTree());

				// AST REWRITE
				// elements: create_view_statement
				// token labels:
				// rule labels: retval
				// token list labels:
				// rule list labels:
				// wildcard labels:
				if (state.backtracking == 0) {
					retval.tree = root_0;
					RewriteRuleSubtreeStream stream_retval = new RewriteRuleSubtreeStream(
							adaptor, "rule retval",
							retval != null ? retval.tree : null);

					root_0 = (Object) adaptor.nil();
					// 60:26: -> ^( CREATE_VIEW_STMT create_view_statement )
					{
						// C:\\Users\\grand\\Desktop\\another\\MySQL.g:60:29: ^(
						// CREATE_VIEW_STMT create_view_statement )
						{
							Object root_1 = (Object) adaptor.nil();
							root_1 = (Object) adaptor.becomeRoot(
									(Object) adaptor.create(CREATE_VIEW_STMT,
											"CREATE_VIEW_STMT"), root_1);

							adaptor.addChild(root_1,
									stream_create_view_statement.nextTree());

							adaptor.addChild(root_0, root_1);
						}

					}

					retval.tree = root_0;
				}
			}
				break;
			case 5:
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:61:4:
			// alter_view_statement
			{
				root_0 = (Object) adaptor.nil();

				pushFollow(FOLLOW_alter_view_statement_in_data_definition_statements276);
				alter_view_statement17 = alter_view_statement();

				state._fsp--;
				if (state.failed)
					return retval;
				if (state.backtracking == 0)
					adaptor.addChild(root_0, alter_view_statement17.getTree());

			}
				break;
			case 6:
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:62:4:
			// rename_table_statement
			{
				pushFollow(FOLLOW_rename_table_statement_in_data_definition_statements282);
				rename_table_statement18 = rename_table_statement();

				state._fsp--;
				if (state.failed)
					return retval;
				if (state.backtracking == 0)
					stream_rename_table_statement.add(rename_table_statement18
							.getTree());

				// AST REWRITE
				// elements: rename_table_statement
				// token labels:
				// rule labels: retval
				// token list labels:
				// rule list labels:
				// wildcard labels:
				if (state.backtracking == 0) {
					retval.tree = root_0;
					RewriteRuleSubtreeStream stream_retval = new RewriteRuleSubtreeStream(
							adaptor, "rule retval",
							retval != null ? retval.tree : null);

					root_0 = (Object) adaptor.nil();
					// 62:26: -> ^( RENAME_TAB_STMT rename_table_statement )
					{
						// C:\\Users\\grand\\Desktop\\another\\MySQL.g:62:29: ^(
						// RENAME_TAB_STMT rename_table_statement )
						{
							Object root_1 = (Object) adaptor.nil();
							root_1 = (Object) adaptor.becomeRoot(
									(Object) adaptor.create(RENAME_TAB_STMT,
											"RENAME_TAB_STMT"), root_1);

							adaptor.addChild(root_1,
									stream_rename_table_statement.nextTree());

							adaptor.addChild(root_0, root_1);
						}

					}

					retval.tree = root_0;
				}
			}
				break;
			case 7:
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:63:4:
			// drop_view_statement
			{
				pushFollow(FOLLOW_drop_view_statement_in_data_definition_statements294);
				drop_view_statement19 = drop_view_statement();

				state._fsp--;
				if (state.failed)
					return retval;
				if (state.backtracking == 0)
					stream_drop_view_statement.add(drop_view_statement19
							.getTree());

				// AST REWRITE
				// elements: drop_view_statement
				// token labels:
				// rule labels: retval
				// token list labels:
				// rule list labels:
				// wildcard labels:
				if (state.backtracking == 0) {
					retval.tree = root_0;
					RewriteRuleSubtreeStream stream_retval = new RewriteRuleSubtreeStream(
							adaptor, "rule retval",
							retval != null ? retval.tree : null);

					root_0 = (Object) adaptor.nil();
					// 63:24: -> ^( DROP_VIEW_STMT drop_view_statement )
					{
						// C:\\Users\\grand\\Desktop\\another\\MySQL.g:63:27: ^(
						// DROP_VIEW_STMT drop_view_statement )
						{
							Object root_1 = (Object) adaptor.nil();
							root_1 = (Object) adaptor.becomeRoot(
									(Object) adaptor.create(DROP_VIEW_STMT,
											"DROP_VIEW_STMT"), root_1);

							adaptor.addChild(root_1,
									stream_drop_view_statement.nextTree());

							adaptor.addChild(root_0, root_1);
						}

					}

					retval.tree = root_0;
				}
			}
				break;
			case 8:
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:64:4:
			// truncate_table_statement
			{
				pushFollow(FOLLOW_truncate_table_statement_in_data_definition_statements307);
				truncate_table_statement20 = truncate_table_statement();

				state._fsp--;
				if (state.failed)
					return retval;
				if (state.backtracking == 0)
					stream_truncate_table_statement
							.add(truncate_table_statement20.getTree());

				// AST REWRITE
				// elements: truncate_table_statement
				// token labels:
				// rule labels: retval
				// token list labels:
				// rule list labels:
				// wildcard labels:
				if (state.backtracking == 0) {
					retval.tree = root_0;
					RewriteRuleSubtreeStream stream_retval = new RewriteRuleSubtreeStream(
							adaptor, "rule retval",
							retval != null ? retval.tree : null);

					root_0 = (Object) adaptor.nil();
					// 64:28: -> ^( TRUNCATE_TAB_STMT truncate_table_statement )
					{
						// C:\\Users\\grand\\Desktop\\another\\MySQL.g:64:31: ^(
						// TRUNCATE_TAB_STMT truncate_table_statement )
						{
							Object root_1 = (Object) adaptor.nil();
							root_1 = (Object) adaptor.becomeRoot(
									(Object) adaptor.create(TRUNCATE_TAB_STMT,
											"TRUNCATE_TAB_STMT"), root_1);

							adaptor.addChild(root_1,
									stream_truncate_table_statement.nextTree());

							adaptor.addChild(root_0, root_1);
						}

					}

					retval.tree = root_0;
				}
			}
				break;
			case 9:
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:66:4:
			// create_index_statement
			{
				pushFollow(FOLLOW_create_index_statement_in_data_definition_statements321);
				create_index_statement21 = create_index_statement();

				state._fsp--;
				if (state.failed)
					return retval;
				if (state.backtracking == 0)
					stream_create_index_statement.add(create_index_statement21
							.getTree());

				// AST REWRITE
				// elements:
				// token labels:
				// rule labels: retval
				// token list labels:
				// rule list labels:
				// wildcard labels:
				if (state.backtracking == 0) {
					retval.tree = root_0;
					RewriteRuleSubtreeStream stream_retval = new RewriteRuleSubtreeStream(
							adaptor, "rule retval",
							retval != null ? retval.tree : null);

					root_0 = (Object) adaptor.nil();
					// 66:27: ->
					{
						root_0 = null;
					}

					retval.tree = root_0;
				}
			}
				break;
			case 10:
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:67:4:
			// drop_index_statement
			{
				pushFollow(FOLLOW_drop_index_statement_in_data_definition_statements329);
				drop_index_statement22 = drop_index_statement();

				state._fsp--;
				if (state.failed)
					return retval;
				if (state.backtracking == 0)
					stream_drop_index_statement.add(drop_index_statement22
							.getTree());

				// AST REWRITE
				// elements:
				// token labels:
				// rule labels: retval
				// token list labels:
				// rule list labels:
				// wildcard labels:
				if (state.backtracking == 0) {
					retval.tree = root_0;
					RewriteRuleSubtreeStream stream_retval = new RewriteRuleSubtreeStream(
							adaptor, "rule retval",
							retval != null ? retval.tree : null);

					root_0 = (Object) adaptor.nil();
					// 67:25: ->
					{
						root_0 = null;
					}

					retval.tree = root_0;
				}
			}
				break;

			}
			retval.stop = input.LT(-1);

			if (state.backtracking == 0) {

				retval.tree = (Object) adaptor.rulePostProcessing(root_0);
				adaptor.setTokenBoundaries(retval.tree, retval.start,
						retval.stop);
			}
		} catch (RecognitionException re) {
			reportError(re);
			recover(input, re);
			retval.tree = (Object) adaptor.errorNode(input, retval.start,
					input.LT(-1), re);

		} finally {
		}
		return retval;
	}

	// $ANTLR end "data_definition_statements"

	public static class select_statement_return extends ParserRuleReturnScope {
		Object tree;

		public Object getTree() {
			return tree;
		}
	};

	// $ANTLR start "select_statement"
	// C:\\Users\\grand\\Desktop\\another\\MySQL.g:71:1: select_statement : (s1=
	// select_expression -> $s1) ( UNION_SYM s2= select_expression -> ^(
	// UNION_OP ^( SELECT_STMT $select_statement) ^( SELECT_STMT $s2) ) |
	// UNION_SYM ALL s3= select_expression -> ^( UNION_ALL_OP ^( SELECT_STMT
	// $select_statement) ^( SELECT_STMT $s3) ) )* ;
	public final MySQLParser.select_statement_return select_statement()
			throws RecognitionException {
		MySQLParser.select_statement_return retval = new MySQLParser.select_statement_return();
		retval.start = input.LT(1);

		Object root_0 = null;

		Token UNION_SYM23 = null;
		Token UNION_SYM24 = null;
		Token ALL25 = null;
		MySQLParser.select_expression_return s1 = null;

		MySQLParser.select_expression_return s2 = null;

		MySQLParser.select_expression_return s3 = null;

		Object UNION_SYM23_tree = null;
		Object UNION_SYM24_tree = null;
		Object ALL25_tree = null;
		RewriteRuleTokenStream stream_UNION_SYM = new RewriteRuleTokenStream(
				adaptor, "token UNION_SYM");
		RewriteRuleTokenStream stream_ALL = new RewriteRuleTokenStream(adaptor,
				"token ALL");
		RewriteRuleSubtreeStream stream_select_expression = new RewriteRuleSubtreeStream(
				adaptor, "rule select_expression");
		try {
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:71:17: ( (s1=
			// select_expression -> $s1) ( UNION_SYM s2= select_expression -> ^(
			// UNION_OP ^( SELECT_STMT $select_statement) ^( SELECT_STMT $s2) )
			// | UNION_SYM ALL s3= select_expression -> ^( UNION_ALL_OP ^(
			// SELECT_STMT $select_statement) ^( SELECT_STMT $s3) ) )* )
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:72:9: (s1=
			// select_expression -> $s1) ( UNION_SYM s2= select_expression -> ^(
			// UNION_OP ^( SELECT_STMT $select_statement) ^( SELECT_STMT $s2) )
			// | UNION_SYM ALL s3= select_expression -> ^( UNION_ALL_OP ^(
			// SELECT_STMT $select_statement) ^( SELECT_STMT $s3) ) )*
			{
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:72:9: (s1=
				// select_expression -> $s1)
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:72:10: s1=
				// select_expression
				{
					pushFollow(FOLLOW_select_expression_in_select_statement352);
					s1 = select_expression();

					state._fsp--;
					if (state.failed)
						return retval;
					if (state.backtracking == 0)
						stream_select_expression.add(s1.getTree());

					// AST REWRITE
					// elements: s1
					// token labels:
					// rule labels: retval, s1
					// token list labels:
					// rule list labels:
					// wildcard labels:
					if (state.backtracking == 0) {
						retval.tree = root_0;
						RewriteRuleSubtreeStream stream_retval = new RewriteRuleSubtreeStream(
								adaptor, "rule retval",
								retval != null ? retval.tree : null);
						RewriteRuleSubtreeStream stream_s1 = new RewriteRuleSubtreeStream(
								adaptor, "rule s1", s1 != null ? s1.tree : null);

						root_0 = (Object) adaptor.nil();
						// 72:31: -> $s1
						{
							adaptor.addChild(root_0, stream_s1.nextTree());

						}

						retval.tree = root_0;
					}
				}

				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:72:40: (
				// UNION_SYM s2= select_expression -> ^( UNION_OP ^( SELECT_STMT
				// $select_statement) ^( SELECT_STMT $s2) ) | UNION_SYM ALL s3=
				// select_expression -> ^( UNION_ALL_OP ^( SELECT_STMT
				// $select_statement) ^( SELECT_STMT $s3) ) )*
				loop8: do {
					int alt8 = 3;
					int LA8_0 = input.LA(1);

					if ((LA8_0 == UNION_SYM)) {
						int LA8_2 = input.LA(2);

						if ((LA8_2 == ALL)) {
							alt8 = 2;
						} else if ((LA8_2 == SELECT)) {
							alt8 = 1;
						}

					}

					switch (alt8) {
					case 1:
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:73:9:
					// UNION_SYM s2= select_expression
					{
						UNION_SYM23 = (Token) match(input, UNION_SYM,
								FOLLOW_UNION_SYM_in_select_statement372);
						if (state.failed)
							return retval;
						if (state.backtracking == 0)
							stream_UNION_SYM.add(UNION_SYM23);

						pushFollow(FOLLOW_select_expression_in_select_statement376);
						s2 = select_expression();

						state._fsp--;
						if (state.failed)
							return retval;
						if (state.backtracking == 0)
							stream_select_expression.add(s2.getTree());

						// AST REWRITE
						// elements: select_statement, s2
						// token labels:
						// rule labels: retval, s2
						// token list labels:
						// rule list labels:
						// wildcard labels:
						if (state.backtracking == 0) {
							retval.tree = root_0;
							RewriteRuleSubtreeStream stream_retval = new RewriteRuleSubtreeStream(
									adaptor, "rule retval",
									retval != null ? retval.tree : null);
							RewriteRuleSubtreeStream stream_s2 = new RewriteRuleSubtreeStream(
									adaptor, "rule s2", s2 != null ? s2.tree
											: null);

							root_0 = (Object) adaptor.nil();
							// 73:40: -> ^( UNION_OP ^( SELECT_STMT
							// $select_statement) ^( SELECT_STMT $s2) )
							{
								// C:\\Users\\grand\\Desktop\\another\\MySQL.g:73:43:
								// ^( UNION_OP ^( SELECT_STMT $select_statement)
								// ^( SELECT_STMT $s2) )
								{
									Object root_1 = (Object) adaptor.nil();
									root_1 = (Object) adaptor.becomeRoot(
											(Object) adaptor.create(UNION_OP,
													"UNION_OP"), root_1);

									// C:\\Users\\grand\\Desktop\\another\\MySQL.g:73:54:
									// ^( SELECT_STMT $select_statement)
									{
										Object root_2 = (Object) adaptor.nil();
										root_2 = (Object) adaptor.becomeRoot(
												(Object) adaptor.create(
														SELECT_STMT,
														"SELECT_STMT"), root_2);

										adaptor.addChild(root_2,
												stream_retval.nextTree());

										adaptor.addChild(root_1, root_2);
									}
									// C:\\Users\\grand\\Desktop\\another\\MySQL.g:73:87:
									// ^( SELECT_STMT $s2)
									{
										Object root_2 = (Object) adaptor.nil();
										root_2 = (Object) adaptor.becomeRoot(
												(Object) adaptor.create(
														SELECT_STMT,
														"SELECT_STMT"), root_2);

										adaptor.addChild(root_2,
												stream_s2.nextTree());

										adaptor.addChild(root_1, root_2);
									}

									adaptor.addChild(root_0, root_1);
								}

							}

							retval.tree = root_0;
						}
					}
						break;
					case 2:
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:75:9:
					// UNION_SYM ALL s3= select_expression
					{
						UNION_SYM24 = (Token) match(input, UNION_SYM,
								FOLLOW_UNION_SYM_in_select_statement417);
						if (state.failed)
							return retval;
						if (state.backtracking == 0)
							stream_UNION_SYM.add(UNION_SYM24);

						ALL25 = (Token) match(input, ALL,
								FOLLOW_ALL_in_select_statement419);
						if (state.failed)
							return retval;
						if (state.backtracking == 0)
							stream_ALL.add(ALL25);

						pushFollow(FOLLOW_select_expression_in_select_statement423);
						s3 = select_expression();

						state._fsp--;
						if (state.failed)
							return retval;
						if (state.backtracking == 0)
							stream_select_expression.add(s3.getTree());

						// AST REWRITE
						// elements: select_statement, s3
						// token labels:
						// rule labels: retval, s3
						// token list labels:
						// rule list labels:
						// wildcard labels:
						if (state.backtracking == 0) {
							retval.tree = root_0;
							RewriteRuleSubtreeStream stream_retval = new RewriteRuleSubtreeStream(
									adaptor, "rule retval",
									retval != null ? retval.tree : null);
							RewriteRuleSubtreeStream stream_s3 = new RewriteRuleSubtreeStream(
									adaptor, "rule s3", s3 != null ? s3.tree
											: null);

							root_0 = (Object) adaptor.nil();
							// 75:43: -> ^( UNION_ALL_OP ^( SELECT_STMT
							// $select_statement) ^( SELECT_STMT $s3) )
							{
								// C:\\Users\\grand\\Desktop\\another\\MySQL.g:75:45:
								// ^( UNION_ALL_OP ^( SELECT_STMT
								// $select_statement) ^( SELECT_STMT $s3) )
								{
									Object root_1 = (Object) adaptor.nil();
									root_1 = (Object) adaptor.becomeRoot(
											(Object) adaptor.create(
													UNION_ALL_OP,
													"UNION_ALL_OP"), root_1);

									// C:\\Users\\grand\\Desktop\\another\\MySQL.g:75:60:
									// ^( SELECT_STMT $select_statement)
									{
										Object root_2 = (Object) adaptor.nil();
										root_2 = (Object) adaptor.becomeRoot(
												(Object) adaptor.create(
														SELECT_STMT,
														"SELECT_STMT"), root_2);

										adaptor.addChild(root_2,
												stream_retval.nextTree());

										adaptor.addChild(root_1, root_2);
									}
									// C:\\Users\\grand\\Desktop\\another\\MySQL.g:75:93:
									// ^( SELECT_STMT $s3)
									{
										Object root_2 = (Object) adaptor.nil();
										root_2 = (Object) adaptor.becomeRoot(
												(Object) adaptor.create(
														SELECT_STMT,
														"SELECT_STMT"), root_2);

										adaptor.addChild(root_2,
												stream_s3.nextTree());

										adaptor.addChild(root_1, root_2);
									}

									adaptor.addChild(root_0, root_1);
								}

							}

							retval.tree = root_0;
						}
					}
						break;

					default:
						break loop8;
					}
				} while (true);

			}

			retval.stop = input.LT(-1);

			if (state.backtracking == 0) {

				retval.tree = (Object) adaptor.rulePostProcessing(root_0);
				adaptor.setTokenBoundaries(retval.tree, retval.start,
						retval.stop);
			}
		} catch (RecognitionException re) {
			reportError(re);
			recover(input, re);
			retval.tree = (Object) adaptor.errorNode(input, retval.start,
					input.LT(-1), re);

		} finally {
		}
		return retval;
	}

	// $ANTLR end "select_statement"

	public static class select_expression_return extends ParserRuleReturnScope {
		Object tree;

		public Object getTree() {
			return tree;
		}
	};

	// $ANTLR start "select_expression"
	// C:\\Users\\grand\\Desktop\\another\\MySQL.g:79:1: select_expression :
	// SELECT ( ALL | DISTINCT | DISTINCTROW )? ( HIGH_PRIORITY )? (
	// STRAIGHT_JOIN )? ( SQL_SMALL_RESULT )? ( SQL_BIG_RESULT )? (
	// SQL_BUFFER_RESULT )? ( SQL_CACHE_SYM | SQL_NO_CACHE_SYM )? (
	// SQL_CALC_FOUND_ROWS )? select_list ( FROM table_references (
	// partition_clause )? ( where_clause )? ( groupby_clause )? ( having_clause
	// )? )? ( orderby_clause )? ( limit_clause )? ( ( FOR_SYM UPDATE ) | ( LOCK
	// IN_SYM SHARE_SYM MODE_SYM ) )? -> ^( SELECT select_list ) ( ^( FROM
	// table_references ) ( partition_clause )? ( where_clause )? (
	// groupby_clause )? ( having_clause )? )? ( orderby_clause )? (
	// limit_clause )? ;
	public final MySQLParser.select_expression_return select_expression()
			throws RecognitionException {
		MySQLParser.select_expression_return retval = new MySQLParser.select_expression_return();
		retval.start = input.LT(1);

		Object root_0 = null;

		Token SELECT26 = null;
		Token ALL27 = null;
		Token DISTINCT28 = null;
		Token DISTINCTROW29 = null;
		Token HIGH_PRIORITY30 = null;
		Token STRAIGHT_JOIN31 = null;
		Token SQL_SMALL_RESULT32 = null;
		Token SQL_BIG_RESULT33 = null;
		Token SQL_BUFFER_RESULT34 = null;
		Token SQL_CACHE_SYM35 = null;
		Token SQL_NO_CACHE_SYM36 = null;
		Token SQL_CALC_FOUND_ROWS37 = null;
		Token FROM39 = null;
		Token FOR_SYM47 = null;
		Token UPDATE48 = null;
		Token LOCK49 = null;
		Token IN_SYM50 = null;
		Token SHARE_SYM51 = null;
		Token MODE_SYM52 = null;
		MySQLParser.select_list_return select_list38 = null;

		MySQLParser.table_references_return table_references40 = null;

		MySQLParser.partition_clause_return partition_clause41 = null;

		MySQLParser.where_clause_return where_clause42 = null;

		MySQLParser.groupby_clause_return groupby_clause43 = null;

		MySQLParser.having_clause_return having_clause44 = null;

		MySQLParser.orderby_clause_return orderby_clause45 = null;

		MySQLParser.limit_clause_return limit_clause46 = null;

		Object SELECT26_tree = null;
		Object ALL27_tree = null;
		Object DISTINCT28_tree = null;
		Object DISTINCTROW29_tree = null;
		Object HIGH_PRIORITY30_tree = null;
		Object STRAIGHT_JOIN31_tree = null;
		Object SQL_SMALL_RESULT32_tree = null;
		Object SQL_BIG_RESULT33_tree = null;
		Object SQL_BUFFER_RESULT34_tree = null;
		Object SQL_CACHE_SYM35_tree = null;
		Object SQL_NO_CACHE_SYM36_tree = null;
		Object SQL_CALC_FOUND_ROWS37_tree = null;
		Object FROM39_tree = null;
		Object FOR_SYM47_tree = null;
		Object UPDATE48_tree = null;
		Object LOCK49_tree = null;
		Object IN_SYM50_tree = null;
		Object SHARE_SYM51_tree = null;
		Object MODE_SYM52_tree = null;
		RewriteRuleTokenStream stream_SQL_BUFFER_RESULT = new RewriteRuleTokenStream(
				adaptor, "token SQL_BUFFER_RESULT");
		RewriteRuleTokenStream stream_SQL_CACHE_SYM = new RewriteRuleTokenStream(
				adaptor, "token SQL_CACHE_SYM");
		RewriteRuleTokenStream stream_MODE_SYM = new RewriteRuleTokenStream(
				adaptor, "token MODE_SYM");
		RewriteRuleTokenStream stream_SHARE_SYM = new RewriteRuleTokenStream(
				adaptor, "token SHARE_SYM");
		RewriteRuleTokenStream stream_ALL = new RewriteRuleTokenStream(adaptor,
				"token ALL");
		RewriteRuleTokenStream stream_HIGH_PRIORITY = new RewriteRuleTokenStream(
				adaptor, "token HIGH_PRIORITY");
		RewriteRuleTokenStream stream_SQL_NO_CACHE_SYM = new RewriteRuleTokenStream(
				adaptor, "token SQL_NO_CACHE_SYM");
		RewriteRuleTokenStream stream_SQL_BIG_RESULT = new RewriteRuleTokenStream(
				adaptor, "token SQL_BIG_RESULT");
		RewriteRuleTokenStream stream_SQL_CALC_FOUND_ROWS = new RewriteRuleTokenStream(
				adaptor, "token SQL_CALC_FOUND_ROWS");
		RewriteRuleTokenStream stream_UPDATE = new RewriteRuleTokenStream(
				adaptor, "token UPDATE");
		RewriteRuleTokenStream stream_FOR_SYM = new RewriteRuleTokenStream(
				adaptor, "token FOR_SYM");
		RewriteRuleTokenStream stream_STRAIGHT_JOIN = new RewriteRuleTokenStream(
				adaptor, "token STRAIGHT_JOIN");
		RewriteRuleTokenStream stream_FROM = new RewriteRuleTokenStream(
				adaptor, "token FROM");
		RewriteRuleTokenStream stream_DISTINCT = new RewriteRuleTokenStream(
				adaptor, "token DISTINCT");
		RewriteRuleTokenStream stream_SELECT = new RewriteRuleTokenStream(
				adaptor, "token SELECT");
		RewriteRuleTokenStream stream_IN_SYM = new RewriteRuleTokenStream(
				adaptor, "token IN_SYM");
		RewriteRuleTokenStream stream_SQL_SMALL_RESULT = new RewriteRuleTokenStream(
				adaptor, "token SQL_SMALL_RESULT");
		RewriteRuleTokenStream stream_LOCK = new RewriteRuleTokenStream(
				adaptor, "token LOCK");
		RewriteRuleTokenStream stream_DISTINCTROW = new RewriteRuleTokenStream(
				adaptor, "token DISTINCTROW");
		RewriteRuleSubtreeStream stream_groupby_clause = new RewriteRuleSubtreeStream(
				adaptor, "rule groupby_clause");
		RewriteRuleSubtreeStream stream_select_list = new RewriteRuleSubtreeStream(
				adaptor, "rule select_list");
		RewriteRuleSubtreeStream stream_table_references = new RewriteRuleSubtreeStream(
				adaptor, "rule table_references");
		RewriteRuleSubtreeStream stream_having_clause = new RewriteRuleSubtreeStream(
				adaptor, "rule having_clause");
		RewriteRuleSubtreeStream stream_limit_clause = new RewriteRuleSubtreeStream(
				adaptor, "rule limit_clause");
		RewriteRuleSubtreeStream stream_where_clause = new RewriteRuleSubtreeStream(
				adaptor, "rule where_clause");
		RewriteRuleSubtreeStream stream_partition_clause = new RewriteRuleSubtreeStream(
				adaptor, "rule partition_clause");
		RewriteRuleSubtreeStream stream_orderby_clause = new RewriteRuleSubtreeStream(
				adaptor, "rule orderby_clause");
		try {
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:79:18: ( SELECT ( ALL
			// | DISTINCT | DISTINCTROW )? ( HIGH_PRIORITY )? ( STRAIGHT_JOIN )?
			// ( SQL_SMALL_RESULT )? ( SQL_BIG_RESULT )? ( SQL_BUFFER_RESULT )?
			// ( SQL_CACHE_SYM | SQL_NO_CACHE_SYM )? ( SQL_CALC_FOUND_ROWS )?
			// select_list ( FROM table_references ( partition_clause )? (
			// where_clause )? ( groupby_clause )? ( having_clause )? )? (
			// orderby_clause )? ( limit_clause )? ( ( FOR_SYM UPDATE ) | ( LOCK
			// IN_SYM SHARE_SYM MODE_SYM ) )? -> ^( SELECT select_list ) ( ^(
			// FROM table_references ) ( partition_clause )? ( where_clause )? (
			// groupby_clause )? ( having_clause )? )? ( orderby_clause )? (
			// limit_clause )? )
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:80:2: SELECT ( ALL |
			// DISTINCT | DISTINCTROW )? ( HIGH_PRIORITY )? ( STRAIGHT_JOIN )? (
			// SQL_SMALL_RESULT )? ( SQL_BIG_RESULT )? ( SQL_BUFFER_RESULT )? (
			// SQL_CACHE_SYM | SQL_NO_CACHE_SYM )? ( SQL_CALC_FOUND_ROWS )?
			// select_list ( FROM table_references ( partition_clause )? (
			// where_clause )? ( groupby_clause )? ( having_clause )? )? (
			// orderby_clause )? ( limit_clause )? ( ( FOR_SYM UPDATE ) | ( LOCK
			// IN_SYM SHARE_SYM MODE_SYM ) )?
			{
				SELECT26 = (Token) match(input, SELECT,
						FOLLOW_SELECT_in_select_expression462);
				if (state.failed)
					return retval;
				if (state.backtracking == 0)
					stream_SELECT.add(SELECT26);

				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:82:2: ( ALL |
				// DISTINCT | DISTINCTROW )?
				int alt9 = 4;
				switch (input.LA(1)) {
				case ALL: {
					alt9 = 1;
				}
					break;
				case DISTINCT: {
					alt9 = 2;
				}
					break;
				case DISTINCTROW: {
					alt9 = 3;
				}
					break;
				}

				switch (alt9) {
				case 1:
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:82:4: ALL
				{
					ALL27 = (Token) match(input, ALL,
							FOLLOW_ALL_in_select_expression470);
					if (state.failed)
						return retval;
					if (state.backtracking == 0)
						stream_ALL.add(ALL27);

				}
					break;
				case 2:
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:82:10: DISTINCT
				{
					DISTINCT28 = (Token) match(input, DISTINCT,
							FOLLOW_DISTINCT_in_select_expression474);
					if (state.failed)
						return retval;
					if (state.backtracking == 0)
						stream_DISTINCT.add(DISTINCT28);

				}
					break;
				case 3:
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:82:21:
				// DISTINCTROW
				{
					DISTINCTROW29 = (Token) match(input, DISTINCTROW,
							FOLLOW_DISTINCTROW_in_select_expression478);
					if (state.failed)
						return retval;
					if (state.backtracking == 0)
						stream_DISTINCTROW.add(DISTINCTROW29);

				}
					break;

				}

				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:83:2: (
				// HIGH_PRIORITY )?
				int alt10 = 2;
				int LA10_0 = input.LA(1);

				if ((LA10_0 == HIGH_PRIORITY)) {
					alt10 = 1;
				}
				switch (alt10) {
				case 1:
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:83:3:
				// HIGH_PRIORITY
				{
					HIGH_PRIORITY30 = (Token) match(input, HIGH_PRIORITY,
							FOLLOW_HIGH_PRIORITY_in_select_expression486);
					if (state.failed)
						return retval;
					if (state.backtracking == 0)
						stream_HIGH_PRIORITY.add(HIGH_PRIORITY30);

				}
					break;

				}

				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:84:2: (
				// STRAIGHT_JOIN )?
				int alt11 = 2;
				int LA11_0 = input.LA(1);

				if ((LA11_0 == STRAIGHT_JOIN)) {
					alt11 = 1;
				}
				switch (alt11) {
				case 1:
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:84:3:
				// STRAIGHT_JOIN
				{
					STRAIGHT_JOIN31 = (Token) match(input, STRAIGHT_JOIN,
							FOLLOW_STRAIGHT_JOIN_in_select_expression492);
					if (state.failed)
						return retval;
					if (state.backtracking == 0)
						stream_STRAIGHT_JOIN.add(STRAIGHT_JOIN31);

				}
					break;

				}

				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:85:2: (
				// SQL_SMALL_RESULT )?
				int alt12 = 2;
				int LA12_0 = input.LA(1);

				if ((LA12_0 == SQL_SMALL_RESULT)) {
					alt12 = 1;
				}
				switch (alt12) {
				case 1:
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:85:3:
				// SQL_SMALL_RESULT
				{
					SQL_SMALL_RESULT32 = (Token) match(input, SQL_SMALL_RESULT,
							FOLLOW_SQL_SMALL_RESULT_in_select_expression498);
					if (state.failed)
						return retval;
					if (state.backtracking == 0)
						stream_SQL_SMALL_RESULT.add(SQL_SMALL_RESULT32);

				}
					break;

				}

				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:85:22: (
				// SQL_BIG_RESULT )?
				int alt13 = 2;
				int LA13_0 = input.LA(1);

				if ((LA13_0 == SQL_BIG_RESULT)) {
					alt13 = 1;
				}
				switch (alt13) {
				case 1:
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:85:23:
				// SQL_BIG_RESULT
				{
					SQL_BIG_RESULT33 = (Token) match(input, SQL_BIG_RESULT,
							FOLLOW_SQL_BIG_RESULT_in_select_expression503);
					if (state.failed)
						return retval;
					if (state.backtracking == 0)
						stream_SQL_BIG_RESULT.add(SQL_BIG_RESULT33);

				}
					break;

				}

				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:85:40: (
				// SQL_BUFFER_RESULT )?
				int alt14 = 2;
				int LA14_0 = input.LA(1);

				if ((LA14_0 == SQL_BUFFER_RESULT)) {
					alt14 = 1;
				}
				switch (alt14) {
				case 1:
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:85:41:
				// SQL_BUFFER_RESULT
				{
					SQL_BUFFER_RESULT34 = (Token) match(input,
							SQL_BUFFER_RESULT,
							FOLLOW_SQL_BUFFER_RESULT_in_select_expression508);
					if (state.failed)
						return retval;
					if (state.backtracking == 0)
						stream_SQL_BUFFER_RESULT.add(SQL_BUFFER_RESULT34);

				}
					break;

				}

				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:86:2: (
				// SQL_CACHE_SYM | SQL_NO_CACHE_SYM )?
				int alt15 = 3;
				int LA15_0 = input.LA(1);

				if ((LA15_0 == SQL_CACHE_SYM)) {
					alt15 = 1;
				} else if ((LA15_0 == SQL_NO_CACHE_SYM)) {
					alt15 = 2;
				}
				switch (alt15) {
				case 1:
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:86:3:
				// SQL_CACHE_SYM
				{
					SQL_CACHE_SYM35 = (Token) match(input, SQL_CACHE_SYM,
							FOLLOW_SQL_CACHE_SYM_in_select_expression514);
					if (state.failed)
						return retval;
					if (state.backtracking == 0)
						stream_SQL_CACHE_SYM.add(SQL_CACHE_SYM35);

				}
					break;
				case 2:
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:86:19:
				// SQL_NO_CACHE_SYM
				{
					SQL_NO_CACHE_SYM36 = (Token) match(input, SQL_NO_CACHE_SYM,
							FOLLOW_SQL_NO_CACHE_SYM_in_select_expression518);
					if (state.failed)
						return retval;
					if (state.backtracking == 0)
						stream_SQL_NO_CACHE_SYM.add(SQL_NO_CACHE_SYM36);

				}
					break;

				}

				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:86:38: (
				// SQL_CALC_FOUND_ROWS )?
				int alt16 = 2;
				int LA16_0 = input.LA(1);

				if ((LA16_0 == SQL_CALC_FOUND_ROWS)) {
					alt16 = 1;
				}
				switch (alt16) {
				case 1:
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:86:39:
				// SQL_CALC_FOUND_ROWS
				{
					SQL_CALC_FOUND_ROWS37 = (Token) match(input,
							SQL_CALC_FOUND_ROWS,
							FOLLOW_SQL_CALC_FOUND_ROWS_in_select_expression523);
					if (state.failed)
						return retval;
					if (state.backtracking == 0)
						stream_SQL_CALC_FOUND_ROWS.add(SQL_CALC_FOUND_ROWS37);

				}
					break;

				}

				pushFollow(FOLLOW_select_list_in_select_expression529);
				select_list38 = select_list();

				state._fsp--;
				if (state.failed)
					return retval;
				if (state.backtracking == 0)
					stream_select_list.add(select_list38.getTree());
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:90:2: ( FROM
				// table_references ( partition_clause )? ( where_clause )? (
				// groupby_clause )? ( having_clause )? )?
				int alt21 = 2;
				int LA21_0 = input.LA(1);

				if ((LA21_0 == FROM)) {
					alt21 = 1;
				}
				switch (alt21) {
				case 1:
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:91:3: FROM
				// table_references ( partition_clause )? ( where_clause )? (
				// groupby_clause )? ( having_clause )?
				{
					FROM39 = (Token) match(input, FROM,
							FOLLOW_FROM_in_select_expression539);
					if (state.failed)
						return retval;
					if (state.backtracking == 0)
						stream_FROM.add(FROM39);

					pushFollow(FOLLOW_table_references_in_select_expression541);
					table_references40 = table_references();

					state._fsp--;
					if (state.failed)
						return retval;
					if (state.backtracking == 0)
						stream_table_references.add(table_references40
								.getTree());
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:92:3: (
					// partition_clause )?
					int alt17 = 2;
					int LA17_0 = input.LA(1);

					if ((LA17_0 == PARTITION_SYM)) {
						alt17 = 1;
					}
					switch (alt17) {
					case 1:
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:92:5:
					// partition_clause
					{
						pushFollow(FOLLOW_partition_clause_in_select_expression548);
						partition_clause41 = partition_clause();

						state._fsp--;
						if (state.failed)
							return retval;
						if (state.backtracking == 0)
							stream_partition_clause.add(partition_clause41
									.getTree());

					}
						break;

					}

					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:93:3: (
					// where_clause )?
					int alt18 = 2;
					int LA18_0 = input.LA(1);

					if ((LA18_0 == WHERE)) {
						alt18 = 1;
					}
					switch (alt18) {
					case 1:
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:93:5:
					// where_clause
					{
						pushFollow(FOLLOW_where_clause_in_select_expression557);
						where_clause42 = where_clause();

						state._fsp--;
						if (state.failed)
							return retval;
						if (state.backtracking == 0)
							stream_where_clause.add(where_clause42.getTree());

					}
						break;

					}

					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:94:3: (
					// groupby_clause )?
					int alt19 = 2;
					int LA19_0 = input.LA(1);

					if ((LA19_0 == GROUP_SYM)) {
						alt19 = 1;
					}
					switch (alt19) {
					case 1:
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:94:5:
					// groupby_clause
					{
						pushFollow(FOLLOW_groupby_clause_in_select_expression567);
						groupby_clause43 = groupby_clause();

						state._fsp--;
						if (state.failed)
							return retval;
						if (state.backtracking == 0)
							stream_groupby_clause.add(groupby_clause43
									.getTree());

					}
						break;

					}

					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:95:3: (
					// having_clause )?
					int alt20 = 2;
					int LA20_0 = input.LA(1);

					if ((LA20_0 == HAVING)) {
						alt20 = 1;
					}
					switch (alt20) {
					case 1:
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:95:5:
					// having_clause
					{
						pushFollow(FOLLOW_having_clause_in_select_expression576);
						having_clause44 = having_clause();

						state._fsp--;
						if (state.failed)
							return retval;
						if (state.backtracking == 0)
							stream_having_clause.add(having_clause44.getTree());

					}
						break;

					}

				}
					break;

				}

				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:98:2: (
				// orderby_clause )?
				int alt22 = 2;
				int LA22_0 = input.LA(1);

				if ((LA22_0 == ORDER_SYM)) {
					alt22 = 1;
				}
				switch (alt22) {
				case 1:
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:98:4:
				// orderby_clause
				{
					pushFollow(FOLLOW_orderby_clause_in_select_expression591);
					orderby_clause45 = orderby_clause();

					state._fsp--;
					if (state.failed)
						return retval;
					if (state.backtracking == 0)
						stream_orderby_clause.add(orderby_clause45.getTree());

				}
					break;

				}

				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:99:2: (
				// limit_clause )?
				int alt23 = 2;
				int LA23_0 = input.LA(1);

				if ((LA23_0 == LIMIT)) {
					alt23 = 1;
				}
				switch (alt23) {
				case 1:
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:99:4:
				// limit_clause
				{
					pushFollow(FOLLOW_limit_clause_in_select_expression599);
					limit_clause46 = limit_clause();

					state._fsp--;
					if (state.failed)
						return retval;
					if (state.backtracking == 0)
						stream_limit_clause.add(limit_clause46.getTree());

				}
					break;

				}

				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:100:2: ( (
				// FOR_SYM UPDATE ) | ( LOCK IN_SYM SHARE_SYM MODE_SYM ) )?
				int alt24 = 3;
				int LA24_0 = input.LA(1);

				if ((LA24_0 == FOR_SYM)) {
					alt24 = 1;
				} else if ((LA24_0 == LOCK)) {
					alt24 = 2;
				}
				switch (alt24) {
				case 1:
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:100:4: ( FOR_SYM
				// UPDATE )
				{
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:100:4: (
					// FOR_SYM UPDATE )
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:100:6:
					// FOR_SYM UPDATE
					{
						FOR_SYM47 = (Token) match(input, FOR_SYM,
								FOLLOW_FOR_SYM_in_select_expression609);
						if (state.failed)
							return retval;
						if (state.backtracking == 0)
							stream_FOR_SYM.add(FOR_SYM47);

						UPDATE48 = (Token) match(input, UPDATE,
								FOLLOW_UPDATE_in_select_expression611);
						if (state.failed)
							return retval;
						if (state.backtracking == 0)
							stream_UPDATE.add(UPDATE48);

					}

				}
					break;
				case 2:
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:100:24: ( LOCK
				// IN_SYM SHARE_SYM MODE_SYM )
				{
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:100:24: (
					// LOCK IN_SYM SHARE_SYM MODE_SYM )
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:100:25: LOCK
					// IN_SYM SHARE_SYM MODE_SYM
					{
						LOCK49 = (Token) match(input, LOCK,
								FOLLOW_LOCK_in_select_expression617);
						if (state.failed)
							return retval;
						if (state.backtracking == 0)
							stream_LOCK.add(LOCK49);

						IN_SYM50 = (Token) match(input, IN_SYM,
								FOLLOW_IN_SYM_in_select_expression619);
						if (state.failed)
							return retval;
						if (state.backtracking == 0)
							stream_IN_SYM.add(IN_SYM50);

						SHARE_SYM51 = (Token) match(input, SHARE_SYM,
								FOLLOW_SHARE_SYM_in_select_expression621);
						if (state.failed)
							return retval;
						if (state.backtracking == 0)
							stream_SHARE_SYM.add(SHARE_SYM51);

						MODE_SYM52 = (Token) match(input, MODE_SYM,
								FOLLOW_MODE_SYM_in_select_expression623);
						if (state.failed)
							return retval;
						if (state.backtracking == 0)
							stream_MODE_SYM.add(MODE_SYM52);

					}

				}
					break;

				}

				// AST REWRITE
				// elements: limit_clause, table_references, FROM, SELECT,
				// orderby_clause, partition_clause, select_list, having_clause,
				// where_clause, groupby_clause
				// token labels:
				// rule labels: retval
				// token list labels:
				// rule list labels:
				// wildcard labels:
				if (state.backtracking == 0) {
					retval.tree = root_0;
					RewriteRuleSubtreeStream stream_retval = new RewriteRuleSubtreeStream(
							adaptor, "rule retval",
							retval != null ? retval.tree : null);

					root_0 = (Object) adaptor.nil();
					// 101:2: -> ^( SELECT select_list ) ( ^( FROM
					// table_references ) ( partition_clause )? ( where_clause
					// )? ( groupby_clause )? ( having_clause )? )? (
					// orderby_clause )? ( limit_clause )?
					{
						// C:\\Users\\grand\\Desktop\\another\\MySQL.g:101:5: ^(
						// SELECT select_list )
						{
							Object root_1 = (Object) adaptor.nil();
							root_1 = (Object) adaptor.becomeRoot(
									stream_SELECT.nextNode(), root_1);

							adaptor.addChild(root_1,
									stream_select_list.nextTree());

							adaptor.addChild(root_0, root_1);
						}
						// C:\\Users\\grand\\Desktop\\another\\MySQL.g:102:2: (
						// ^( FROM table_references ) ( partition_clause )? (
						// where_clause )? ( groupby_clause )? ( having_clause
						// )? )?
						if (stream_table_references.hasNext()
								|| stream_FROM.hasNext()
								|| stream_partition_clause.hasNext()
								|| stream_having_clause.hasNext()
								|| stream_where_clause.hasNext()
								|| stream_groupby_clause.hasNext()) {
							// C:\\Users\\grand\\Desktop\\another\\MySQL.g:102:3:
							// ^( FROM table_references )
							{
								Object root_1 = (Object) adaptor.nil();
								root_1 = (Object) adaptor.becomeRoot(
										stream_FROM.nextNode(), root_1);

								adaptor.addChild(root_1,
										stream_table_references.nextTree());

								adaptor.addChild(root_0, root_1);
							}
							// C:\\Users\\grand\\Desktop\\another\\MySQL.g:102:28:
							// ( partition_clause )?
							if (stream_partition_clause.hasNext()) {
								adaptor.addChild(root_0,
										stream_partition_clause.nextTree());

							}
							stream_partition_clause.reset();
							// C:\\Users\\grand\\Desktop\\another\\MySQL.g:102:48:
							// ( where_clause )?
							if (stream_where_clause.hasNext()) {
								adaptor.addChild(root_0,
										stream_where_clause.nextTree());

							}
							stream_where_clause.reset();
							// C:\\Users\\grand\\Desktop\\another\\MySQL.g:102:66:
							// ( groupby_clause )?
							if (stream_groupby_clause.hasNext()) {
								adaptor.addChild(root_0,
										stream_groupby_clause.nextTree());

							}
							stream_groupby_clause.reset();
							// C:\\Users\\grand\\Desktop\\another\\MySQL.g:102:83:
							// ( having_clause )?
							if (stream_having_clause.hasNext()) {
								adaptor.addChild(root_0,
										stream_having_clause.nextTree());

							}
							stream_having_clause.reset();

						}
						stream_table_references.reset();
						stream_FROM.reset();
						stream_partition_clause.reset();
						stream_having_clause.reset();
						stream_where_clause.reset();
						stream_groupby_clause.reset();
						// C:\\Users\\grand\\Desktop\\another\\MySQL.g:103:2: (
						// orderby_clause )?
						if (stream_orderby_clause.hasNext()) {
							adaptor.addChild(root_0,
									stream_orderby_clause.nextTree());

						}
						stream_orderby_clause.reset();
						// C:\\Users\\grand\\Desktop\\another\\MySQL.g:104:2: (
						// limit_clause )?
						if (stream_limit_clause.hasNext()) {
							adaptor.addChild(root_0,
									stream_limit_clause.nextTree());

						}
						stream_limit_clause.reset();

					}

					retval.tree = root_0;
				}
			}

			retval.stop = input.LT(-1);

			if (state.backtracking == 0) {

				retval.tree = (Object) adaptor.rulePostProcessing(root_0);
				adaptor.setTokenBoundaries(retval.tree, retval.start,
						retval.stop);
			}
		} catch (RecognitionException re) {
			reportError(re);
			recover(input, re);
			retval.tree = (Object) adaptor.errorNode(input, retval.start,
					input.LT(-1), re);

		} finally {
		}
		return retval;
	}

	// $ANTLR end "select_expression"

	public static class where_clause_return extends ParserRuleReturnScope {
		Object tree;

		public Object getTree() {
			return tree;
		}
	};

	// $ANTLR start "where_clause"
	// C:\\Users\\grand\\Desktop\\another\\MySQL.g:107:1: where_clause : WHERE
	// expression -> ^( WHERE expression ) ;
	public final MySQLParser.where_clause_return where_clause()
			throws RecognitionException {
		MySQLParser.where_clause_return retval = new MySQLParser.where_clause_return();
		retval.start = input.LT(1);

		Object root_0 = null;

		Token WHERE53 = null;
		MySQLParser.expression_return expression54 = null;

		Object WHERE53_tree = null;
		RewriteRuleTokenStream stream_WHERE = new RewriteRuleTokenStream(
				adaptor, "token WHERE");
		RewriteRuleSubtreeStream stream_expression = new RewriteRuleSubtreeStream(
				adaptor, "rule expression");
		try {
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:107:13: ( WHERE
			// expression -> ^( WHERE expression ) )
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:108:2: WHERE
			// expression
			{
				WHERE53 = (Token) match(input, WHERE,
						FOLLOW_WHERE_in_where_clause691);
				if (state.failed)
					return retval;
				if (state.backtracking == 0)
					stream_WHERE.add(WHERE53);

				pushFollow(FOLLOW_expression_in_where_clause693);
				expression54 = expression();

				state._fsp--;
				if (state.failed)
					return retval;
				if (state.backtracking == 0)
					stream_expression.add(expression54.getTree());

				// AST REWRITE
				// elements: expression, WHERE
				// token labels:
				// rule labels: retval
				// token list labels:
				// rule list labels:
				// wildcard labels:
				if (state.backtracking == 0) {
					retval.tree = root_0;
					RewriteRuleSubtreeStream stream_retval = new RewriteRuleSubtreeStream(
							adaptor, "rule retval",
							retval != null ? retval.tree : null);

					root_0 = (Object) adaptor.nil();
					// 108:19: -> ^( WHERE expression )
					{
						// C:\\Users\\grand\\Desktop\\another\\MySQL.g:108:22:
						// ^( WHERE expression )
						{
							Object root_1 = (Object) adaptor.nil();
							root_1 = (Object) adaptor.becomeRoot(
									stream_WHERE.nextNode(), root_1);

							adaptor.addChild(root_1,
									stream_expression.nextTree());

							adaptor.addChild(root_0, root_1);
						}

					}

					retval.tree = root_0;
				}
			}

			retval.stop = input.LT(-1);

			if (state.backtracking == 0) {

				retval.tree = (Object) adaptor.rulePostProcessing(root_0);
				adaptor.setTokenBoundaries(retval.tree, retval.start,
						retval.stop);
			}
		} catch (RecognitionException re) {
			reportError(re);
			recover(input, re);
			retval.tree = (Object) adaptor.errorNode(input, retval.start,
					input.LT(-1), re);

		} finally {
		}
		return retval;
	}

	// $ANTLR end "where_clause"

	public static class groupby_clause_return extends ParserRuleReturnScope {
		Object tree;

		public Object getTree() {
			return tree;
		}
	};

	// $ANTLR start "groupby_clause"
	// C:\\Users\\grand\\Desktop\\another\\MySQL.g:111:1: groupby_clause :
	// GROUP_SYM BY_SYM groupby_item ( COMMA groupby_item )* ( WITH ROLLUP_SYM
	// )? -> ^( GROUP_BY ( groupby_item )+ ) ;
	public final MySQLParser.groupby_clause_return groupby_clause()
			throws RecognitionException {
		MySQLParser.groupby_clause_return retval = new MySQLParser.groupby_clause_return();
		retval.start = input.LT(1);

		Object root_0 = null;

		Token GROUP_SYM55 = null;
		Token BY_SYM56 = null;
		Token COMMA58 = null;
		Token WITH60 = null;
		Token ROLLUP_SYM61 = null;
		MySQLParser.groupby_item_return groupby_item57 = null;

		MySQLParser.groupby_item_return groupby_item59 = null;

		Object GROUP_SYM55_tree = null;
		Object BY_SYM56_tree = null;
		Object COMMA58_tree = null;
		Object WITH60_tree = null;
		Object ROLLUP_SYM61_tree = null;
		RewriteRuleTokenStream stream_COMMA = new RewriteRuleTokenStream(
				adaptor, "token COMMA");
		RewriteRuleTokenStream stream_BY_SYM = new RewriteRuleTokenStream(
				adaptor, "token BY_SYM");
		RewriteRuleTokenStream stream_ROLLUP_SYM = new RewriteRuleTokenStream(
				adaptor, "token ROLLUP_SYM");
		RewriteRuleTokenStream stream_WITH = new RewriteRuleTokenStream(
				adaptor, "token WITH");
		RewriteRuleTokenStream stream_GROUP_SYM = new RewriteRuleTokenStream(
				adaptor, "token GROUP_SYM");
		RewriteRuleSubtreeStream stream_groupby_item = new RewriteRuleSubtreeStream(
				adaptor, "rule groupby_item");
		try {
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:111:15: ( GROUP_SYM
			// BY_SYM groupby_item ( COMMA groupby_item )* ( WITH ROLLUP_SYM )?
			// -> ^( GROUP_BY ( groupby_item )+ ) )
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:112:2: GROUP_SYM
			// BY_SYM groupby_item ( COMMA groupby_item )* ( WITH ROLLUP_SYM )?
			{
				GROUP_SYM55 = (Token) match(input, GROUP_SYM,
						FOLLOW_GROUP_SYM_in_groupby_clause710);
				if (state.failed)
					return retval;
				if (state.backtracking == 0)
					stream_GROUP_SYM.add(GROUP_SYM55);

				BY_SYM56 = (Token) match(input, BY_SYM,
						FOLLOW_BY_SYM_in_groupby_clause712);
				if (state.failed)
					return retval;
				if (state.backtracking == 0)
					stream_BY_SYM.add(BY_SYM56);

				pushFollow(FOLLOW_groupby_item_in_groupby_clause714);
				groupby_item57 = groupby_item();

				state._fsp--;
				if (state.failed)
					return retval;
				if (state.backtracking == 0)
					stream_groupby_item.add(groupby_item57.getTree());
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:112:32: ( COMMA
				// groupby_item )*
				loop25: do {
					int alt25 = 2;
					int LA25_0 = input.LA(1);

					if ((LA25_0 == COMMA)) {
						alt25 = 1;
					}

					switch (alt25) {
					case 1:
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:112:33: COMMA
					// groupby_item
					{
						COMMA58 = (Token) match(input, COMMA,
								FOLLOW_COMMA_in_groupby_clause717);
						if (state.failed)
							return retval;
						if (state.backtracking == 0)
							stream_COMMA.add(COMMA58);

						pushFollow(FOLLOW_groupby_item_in_groupby_clause719);
						groupby_item59 = groupby_item();

						state._fsp--;
						if (state.failed)
							return retval;
						if (state.backtracking == 0)
							stream_groupby_item.add(groupby_item59.getTree());

					}
						break;

					default:
						break loop25;
					}
				} while (true);

				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:112:54: ( WITH
				// ROLLUP_SYM )?
				int alt26 = 2;
				int LA26_0 = input.LA(1);

				if ((LA26_0 == WITH)) {
					int LA26_1 = input.LA(2);

					if ((LA26_1 == ROLLUP_SYM)) {
						alt26 = 1;
					}
				}
				switch (alt26) {
				case 1:
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:112:55: WITH
				// ROLLUP_SYM
				{
					WITH60 = (Token) match(input, WITH,
							FOLLOW_WITH_in_groupby_clause724);
					if (state.failed)
						return retval;
					if (state.backtracking == 0)
						stream_WITH.add(WITH60);

					ROLLUP_SYM61 = (Token) match(input, ROLLUP_SYM,
							FOLLOW_ROLLUP_SYM_in_groupby_clause726);
					if (state.failed)
						return retval;
					if (state.backtracking == 0)
						stream_ROLLUP_SYM.add(ROLLUP_SYM61);

				}
					break;

				}

				// AST REWRITE
				// elements: groupby_item
				// token labels:
				// rule labels: retval
				// token list labels:
				// rule list labels:
				// wildcard labels:
				if (state.backtracking == 0) {
					retval.tree = root_0;
					RewriteRuleSubtreeStream stream_retval = new RewriteRuleSubtreeStream(
							adaptor, "rule retval",
							retval != null ? retval.tree : null);

					root_0 = (Object) adaptor.nil();
					// 112:73: -> ^( GROUP_BY ( groupby_item )+ )
					{
						// C:\\Users\\grand\\Desktop\\another\\MySQL.g:112:76:
						// ^( GROUP_BY ( groupby_item )+ )
						{
							Object root_1 = (Object) adaptor.nil();
							root_1 = (Object) adaptor.becomeRoot(
									(Object) adaptor.create(GROUP_BY,
											"GROUP_BY"), root_1);

							if (!(stream_groupby_item.hasNext())) {
								throw new RewriteEarlyExitException();
							}
							while (stream_groupby_item.hasNext()) {
								adaptor.addChild(root_1,
										stream_groupby_item.nextTree());

							}
							stream_groupby_item.reset();

							adaptor.addChild(root_0, root_1);
						}

					}

					retval.tree = root_0;
				}
			}

			retval.stop = input.LT(-1);

			if (state.backtracking == 0) {

				retval.tree = (Object) adaptor.rulePostProcessing(root_0);
				adaptor.setTokenBoundaries(retval.tree, retval.start,
						retval.stop);
			}
		} catch (RecognitionException re) {
			reportError(re);
			recover(input, re);
			retval.tree = (Object) adaptor.errorNode(input, retval.start,
					input.LT(-1), re);

		} finally {
		}
		return retval;
	}

	// $ANTLR end "groupby_clause"

	public static class groupby_item_return extends ParserRuleReturnScope {
		Object tree;

		public Object getTree() {
			return tree;
		}
	};

	// $ANTLR start "groupby_item"
	// C:\\Users\\grand\\Desktop\\another\\MySQL.g:114:1: groupby_item : (
	// column_spec | INTEGER_NUM | bit_expr );
	public final MySQLParser.groupby_item_return groupby_item()
			throws RecognitionException {
		MySQLParser.groupby_item_return retval = new MySQLParser.groupby_item_return();
		retval.start = input.LT(1);

		Object root_0 = null;

		Token INTEGER_NUM63 = null;
		MySQLParser.column_spec_return column_spec62 = null;

		MySQLParser.bit_expr_return bit_expr64 = null;

		Object INTEGER_NUM63_tree = null;

		try {
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:114:13: ( column_spec
			// | INTEGER_NUM | bit_expr )
			int alt27 = 3;
			switch (input.LA(1)) {
			case ID: {
				int LA27_1 = input.LA(2);

				if ((synpred42_MySQL())) {
					alt27 = 1;
				} else if ((true)) {
					alt27 = 3;
				} else {
					if (state.backtracking > 0) {
						state.failed = true;
						return retval;
					}
					NoViableAltException nvae = new NoViableAltException("",
							27, 1, input);

					throw nvae;
				}
			}
				break;
			case INTEGER_NUM: {
				int LA27_2 = input.LA(2);

				if ((synpred43_MySQL())) {
					alt27 = 2;
				} else if ((true)) {
					alt27 = 3;
				} else {
					if (state.backtracking > 0) {
						state.failed = true;
						return retval;
					}
					NoViableAltException nvae = new NoViableAltException("",
							27, 2, input);

					throw nvae;
				}
			}
				break;
			case LPAREN:
			case INSERT:
			case VALUES:
			case DEFAULT:
			case IF:
			case EXISTS:
			case TEXT_STRING:
			case NULL_SYM:
			case DATE_SYM:
			case TIME_SYM:
			case TIMESTAMP:
			case YEAR:
			case CHAR:
			case BINARY:
			case MATCH:
			case PASSWORD:
			case CONVERT_SYM:
			case TRUNCATE:
			case REPLACE:
			case CURRENT_USER:
			case ASCII_SYM:
			case SECOND:
			case MINUTE:
			case HOUR:
			case WEEK:
			case MONTH:
			case QUARTER:
			case PLUS:
			case MINUS:
			case REAL_NUMBER:
			case HEX_DIGIT:
			case TRUE_SYM:
			case FALSE_SYM:
			case BIT_NUM:
			case ABS:
			case ACOS:
			case ASIN:
			case ATAN2:
			case ATAN:
			case CEIL:
			case CEILING:
			case CONV:
			case COS:
			case COT:
			case CRC32:
			case DEGREES:
			case EXP:
			case FLOOR:
			case LN:
			case LOG10:
			case LOG2:
			case LOG:
			case MOD:
			case PI:
			case POW:
			case POWER:
			case RADIANS:
			case RAND:
			case ROUND:
			case SIGN:
			case SIN:
			case SQRT:
			case TAN:
			case BIN:
			case BIT_LENGTH:
			case CHAR_LENGTH:
			case CONCAT_WS:
			case CONCAT:
			case ELT:
			case EXPORT_SET:
			case FIELD:
			case FIND_IN_SET:
			case FORMAT:
			case FROM_BASE64:
			case HEX:
			case INSTR:
			case LEFT:
			case LENGTH:
			case LOAD_FILE:
			case LOCATE:
			case LOWER:
			case LPAD:
			case LTRIM:
			case MAKE_SET:
			case MID:
			case OCT:
			case ORD:
			case QUOTE:
			case REPEAT:
			case REVERSE:
			case RIGHT:
			case RPAD:
			case RTRIM:
			case SOUNDEX:
			case SPACE:
			case STRCMP:
			case SUBSTRING_INDEX:
			case SUBSTRING:
			case TO_BASE64:
			case TRIM:
			case UNHEX:
			case UPPER:
			case WEIGHT_STRING:
			case ADDDATE:
			case ADDTIME:
			case CONVERT_TZ:
			case CURDATE:
			case CURTIME:
			case DATE_ADD:
			case DATE_FORMAT:
			case DATE_SUB:
			case DATEDIFF:
			case DAYNAME:
			case DAYOFMONTH:
			case DAYOFWEEK:
			case DAYOFYEAR:
			case EXTRACT:
			case FROM_DAYS:
			case FROM_UNIXTIME:
			case GET_FORMAT:
			case LAST_DAY:
			case MAKEDATE:
			case MAKETIME:
			case MICROSECOND:
			case MONTHNAME:
			case NOW:
			case PERIOD_ADD:
			case PERIOD_DIFF:
			case SEC_TO_TIME:
			case STR_TO_DATE:
			case SUBTIME:
			case SYSDATE:
			case TIME_FORMAT:
			case TIME_TO_SEC:
			case TIMEDIFF:
			case TIMESTAMPADD:
			case TIMESTAMPDIFF:
			case TO_DAYS:
			case TO_SECONDS:
			case UNIX_TIMESTAMP:
			case UTC_DATE:
			case UTC_TIME:
			case UTC_TIMESTAMP:
			case WEEKDAY:
			case WEEKOFYEAR:
			case YEARWEEK:
			case IFNULL:
			case AES_ENCRYPT:
			case AES_DECRYPT:
			case DECODE:
			case ENCODE:
			case DES_DECRYPT:
			case DES_ENCRYPT:
			case ENCRYPT:
			case MD5:
			case OLD_PASSWORD:
			case BENCHMARK:
			case CHARSET:
			case COERCIBILITY:
			case COLLATION:
			case CONNECTION_ID:
			case DATABASE:
			case SCHEMA:
			case USER:
			case SESSION_USER:
			case SYSTEM_USER:
			case VERSION_SYM:
			case FOUND_ROWS:
			case LAST_INSERT_ID:
			case GET_LOCK:
			case RELEASE_LOCK:
			case IS_FREE_LOCK:
			case IS_USED_LOCK:
			case MASTER_POS_WAIT:
			case INET_ATON:
			case INET_NTOA:
			case NAME_CONST:
			case SLEEP:
			case UUID:
			case AVG:
			case COUNT:
			case MAX_SYM:
			case MIN_SYM:
			case SUM:
			case BIT_AND:
			case BIT_OR:
			case BIT_XOR:
			case GROUP_CONCAT:
			case STD:
			case STDDEV:
			case STDDEV_POP:
			case STDDEV_SAMP:
			case VAR_POP:
			case VAR_SAMP:
			case VARIANCE:
			case NEGATION:
			case USER_VAR:
			case ROW_SYM:
			case CAST_SYM:
			case CASE_SYM:
			case INTERVAL_SYM: {
				alt27 = 3;
			}
				break;
			default:
				if (state.backtracking > 0) {
					state.failed = true;
					return retval;
				}
				NoViableAltException nvae = new NoViableAltException("", 27, 0,
						input);

				throw nvae;
			}

			switch (alt27) {
			case 1:
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:114:15: column_spec
			{
				root_0 = (Object) adaptor.nil();

				pushFollow(FOLLOW_column_spec_in_groupby_item744);
				column_spec62 = column_spec();

				state._fsp--;
				if (state.failed)
					return retval;
				if (state.backtracking == 0)
					adaptor.addChild(root_0, column_spec62.getTree());

			}
				break;
			case 2:
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:114:29: INTEGER_NUM
			{
				root_0 = (Object) adaptor.nil();

				INTEGER_NUM63 = (Token) match(input, INTEGER_NUM,
						FOLLOW_INTEGER_NUM_in_groupby_item748);
				if (state.failed)
					return retval;
				if (state.backtracking == 0) {
					INTEGER_NUM63_tree = (Object) adaptor.create(INTEGER_NUM63);
					adaptor.addChild(root_0, INTEGER_NUM63_tree);
				}

			}
				break;
			case 3:
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:114:43: bit_expr
			{
				root_0 = (Object) adaptor.nil();

				pushFollow(FOLLOW_bit_expr_in_groupby_item752);
				bit_expr64 = bit_expr();

				state._fsp--;
				if (state.failed)
					return retval;
				if (state.backtracking == 0)
					adaptor.addChild(root_0, bit_expr64.getTree());

			}
				break;

			}
			retval.stop = input.LT(-1);

			if (state.backtracking == 0) {

				retval.tree = (Object) adaptor.rulePostProcessing(root_0);
				adaptor.setTokenBoundaries(retval.tree, retval.start,
						retval.stop);
			}
		} catch (RecognitionException re) {
			reportError(re);
			recover(input, re);
			retval.tree = (Object) adaptor.errorNode(input, retval.start,
					input.LT(-1), re);

		} finally {
		}
		return retval;
	}

	// $ANTLR end "groupby_item"

	public static class having_clause_return extends ParserRuleReturnScope {
		Object tree;

		public Object getTree() {
			return tree;
		}
	};

	// $ANTLR start "having_clause"
	// C:\\Users\\grand\\Desktop\\another\\MySQL.g:116:1: having_clause : HAVING
	// expression -> ^( HAVING expression ) ;
	public final MySQLParser.having_clause_return having_clause()
			throws RecognitionException {
		MySQLParser.having_clause_return retval = new MySQLParser.having_clause_return();
		retval.start = input.LT(1);

		Object root_0 = null;

		Token HAVING65 = null;
		MySQLParser.expression_return expression66 = null;

		Object HAVING65_tree = null;
		RewriteRuleTokenStream stream_HAVING = new RewriteRuleTokenStream(
				adaptor, "token HAVING");
		RewriteRuleSubtreeStream stream_expression = new RewriteRuleSubtreeStream(
				adaptor, "rule expression");
		try {
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:116:14: ( HAVING
			// expression -> ^( HAVING expression ) )
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:117:2: HAVING
			// expression
			{
				HAVING65 = (Token) match(input, HAVING,
						FOLLOW_HAVING_in_having_clause761);
				if (state.failed)
					return retval;
				if (state.backtracking == 0)
					stream_HAVING.add(HAVING65);

				pushFollow(FOLLOW_expression_in_having_clause763);
				expression66 = expression();

				state._fsp--;
				if (state.failed)
					return retval;
				if (state.backtracking == 0)
					stream_expression.add(expression66.getTree());

				// AST REWRITE
				// elements: expression, HAVING
				// token labels:
				// rule labels: retval
				// token list labels:
				// rule list labels:
				// wildcard labels:
				if (state.backtracking == 0) {
					retval.tree = root_0;
					RewriteRuleSubtreeStream stream_retval = new RewriteRuleSubtreeStream(
							adaptor, "rule retval",
							retval != null ? retval.tree : null);

					root_0 = (Object) adaptor.nil();
					// 117:20: -> ^( HAVING expression )
					{
						// C:\\Users\\grand\\Desktop\\another\\MySQL.g:117:22:
						// ^( HAVING expression )
						{
							Object root_1 = (Object) adaptor.nil();
							root_1 = (Object) adaptor.becomeRoot(
									stream_HAVING.nextNode(), root_1);

							adaptor.addChild(root_1,
									stream_expression.nextTree());

							adaptor.addChild(root_0, root_1);
						}

					}

					retval.tree = root_0;
				}
			}

			retval.stop = input.LT(-1);

			if (state.backtracking == 0) {

				retval.tree = (Object) adaptor.rulePostProcessing(root_0);
				adaptor.setTokenBoundaries(retval.tree, retval.start,
						retval.stop);
			}
		} catch (RecognitionException re) {
			reportError(re);
			recover(input, re);
			retval.tree = (Object) adaptor.errorNode(input, retval.start,
					input.LT(-1), re);

		} finally {
		}
		return retval;
	}

	// $ANTLR end "having_clause"

	public static class orderby_clause_return extends ParserRuleReturnScope {
		Object tree;

		public Object getTree() {
			return tree;
		}
	};

	// $ANTLR start "orderby_clause"
	// C:\\Users\\grand\\Desktop\\another\\MySQL.g:120:1: orderby_clause :
	// ORDER_SYM BY_SYM orderby_item ( COMMA orderby_item )* -> ^( ORDER_BY (
	// orderby_item )+ ) ;
	public final MySQLParser.orderby_clause_return orderby_clause()
			throws RecognitionException {
		MySQLParser.orderby_clause_return retval = new MySQLParser.orderby_clause_return();
		retval.start = input.LT(1);

		Object root_0 = null;

		Token ORDER_SYM67 = null;
		Token BY_SYM68 = null;
		Token COMMA70 = null;
		MySQLParser.orderby_item_return orderby_item69 = null;

		MySQLParser.orderby_item_return orderby_item71 = null;

		Object ORDER_SYM67_tree = null;
		Object BY_SYM68_tree = null;
		Object COMMA70_tree = null;
		RewriteRuleTokenStream stream_ORDER_SYM = new RewriteRuleTokenStream(
				adaptor, "token ORDER_SYM");
		RewriteRuleTokenStream stream_COMMA = new RewriteRuleTokenStream(
				adaptor, "token COMMA");
		RewriteRuleTokenStream stream_BY_SYM = new RewriteRuleTokenStream(
				adaptor, "token BY_SYM");
		RewriteRuleSubtreeStream stream_orderby_item = new RewriteRuleSubtreeStream(
				adaptor, "rule orderby_item");
		try {
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:120:15: ( ORDER_SYM
			// BY_SYM orderby_item ( COMMA orderby_item )* -> ^( ORDER_BY (
			// orderby_item )+ ) )
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:121:2: ORDER_SYM
			// BY_SYM orderby_item ( COMMA orderby_item )*
			{
				ORDER_SYM67 = (Token) match(input, ORDER_SYM,
						FOLLOW_ORDER_SYM_in_orderby_clause779);
				if (state.failed)
					return retval;
				if (state.backtracking == 0)
					stream_ORDER_SYM.add(ORDER_SYM67);

				BY_SYM68 = (Token) match(input, BY_SYM,
						FOLLOW_BY_SYM_in_orderby_clause781);
				if (state.failed)
					return retval;
				if (state.backtracking == 0)
					stream_BY_SYM.add(BY_SYM68);

				pushFollow(FOLLOW_orderby_item_in_orderby_clause783);
				orderby_item69 = orderby_item();

				state._fsp--;
				if (state.failed)
					return retval;
				if (state.backtracking == 0)
					stream_orderby_item.add(orderby_item69.getTree());
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:121:32: ( COMMA
				// orderby_item )*
				loop28: do {
					int alt28 = 2;
					int LA28_0 = input.LA(1);

					if ((LA28_0 == COMMA)) {
						alt28 = 1;
					}

					switch (alt28) {
					case 1:
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:121:33: COMMA
					// orderby_item
					{
						COMMA70 = (Token) match(input, COMMA,
								FOLLOW_COMMA_in_orderby_clause786);
						if (state.failed)
							return retval;
						if (state.backtracking == 0)
							stream_COMMA.add(COMMA70);

						pushFollow(FOLLOW_orderby_item_in_orderby_clause788);
						orderby_item71 = orderby_item();

						state._fsp--;
						if (state.failed)
							return retval;
						if (state.backtracking == 0)
							stream_orderby_item.add(orderby_item71.getTree());

					}
						break;

					default:
						break loop28;
					}
				} while (true);

				// AST REWRITE
				// elements: orderby_item
				// token labels:
				// rule labels: retval
				// token list labels:
				// rule list labels:
				// wildcard labels:
				if (state.backtracking == 0) {
					retval.tree = root_0;
					RewriteRuleSubtreeStream stream_retval = new RewriteRuleSubtreeStream(
							adaptor, "rule retval",
							retval != null ? retval.tree : null);

					root_0 = (Object) adaptor.nil();
					// 121:54: -> ^( ORDER_BY ( orderby_item )+ )
					{
						// C:\\Users\\grand\\Desktop\\another\\MySQL.g:121:56:
						// ^( ORDER_BY ( orderby_item )+ )
						{
							Object root_1 = (Object) adaptor.nil();
							root_1 = (Object) adaptor.becomeRoot(
									(Object) adaptor.create(ORDER_BY,
											"ORDER_BY"), root_1);

							if (!(stream_orderby_item.hasNext())) {
								throw new RewriteEarlyExitException();
							}
							while (stream_orderby_item.hasNext()) {
								adaptor.addChild(root_1,
										stream_orderby_item.nextTree());

							}
							stream_orderby_item.reset();

							adaptor.addChild(root_0, root_1);
						}

					}

					retval.tree = root_0;
				}
			}

			retval.stop = input.LT(-1);

			if (state.backtracking == 0) {

				retval.tree = (Object) adaptor.rulePostProcessing(root_0);
				adaptor.setTokenBoundaries(retval.tree, retval.start,
						retval.stop);
			}
		} catch (RecognitionException re) {
			reportError(re);
			recover(input, re);
			retval.tree = (Object) adaptor.errorNode(input, retval.start,
					input.LT(-1), re);

		} finally {
		}
		return retval;
	}

	// $ANTLR end "orderby_clause"

	public static class orderby_item_return extends ParserRuleReturnScope {
		Object tree;

		public Object getTree() {
			return tree;
		}
	};

	// $ANTLR start "orderby_item"
	// C:\\Users\\grand\\Desktop\\another\\MySQL.g:123:1: orderby_item :
	// groupby_item ( ASC | DESC )? -> groupby_item ;
	public final MySQLParser.orderby_item_return orderby_item()
			throws RecognitionException {
		MySQLParser.orderby_item_return retval = new MySQLParser.orderby_item_return();
		retval.start = input.LT(1);

		Object root_0 = null;

		Token ASC73 = null;
		Token DESC74 = null;
		MySQLParser.groupby_item_return groupby_item72 = null;

		Object ASC73_tree = null;
		Object DESC74_tree = null;
		RewriteRuleTokenStream stream_ASC = new RewriteRuleTokenStream(adaptor,
				"token ASC");
		RewriteRuleTokenStream stream_DESC = new RewriteRuleTokenStream(
				adaptor, "token DESC");
		RewriteRuleSubtreeStream stream_groupby_item = new RewriteRuleSubtreeStream(
				adaptor, "rule groupby_item");
		try {
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:123:13: (
			// groupby_item ( ASC | DESC )? -> groupby_item )
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:123:15: groupby_item
			// ( ASC | DESC )?
			{
				pushFollow(FOLLOW_groupby_item_in_orderby_item805);
				groupby_item72 = groupby_item();

				state._fsp--;
				if (state.failed)
					return retval;
				if (state.backtracking == 0)
					stream_groupby_item.add(groupby_item72.getTree());
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:123:28: ( ASC |
				// DESC )?
				int alt29 = 3;
				int LA29_0 = input.LA(1);

				if ((LA29_0 == ASC)) {
					alt29 = 1;
				} else if ((LA29_0 == DESC)) {
					alt29 = 2;
				}
				switch (alt29) {
				case 1:
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:123:29: ASC
				{
					ASC73 = (Token) match(input, ASC,
							FOLLOW_ASC_in_orderby_item808);
					if (state.failed)
						return retval;
					if (state.backtracking == 0)
						stream_ASC.add(ASC73);

				}
					break;
				case 2:
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:123:35: DESC
				{
					DESC74 = (Token) match(input, DESC,
							FOLLOW_DESC_in_orderby_item812);
					if (state.failed)
						return retval;
					if (state.backtracking == 0)
						stream_DESC.add(DESC74);

				}
					break;

				}

				// AST REWRITE
				// elements: groupby_item
				// token labels:
				// rule labels: retval
				// token list labels:
				// rule list labels:
				// wildcard labels:
				if (state.backtracking == 0) {
					retval.tree = root_0;
					RewriteRuleSubtreeStream stream_retval = new RewriteRuleSubtreeStream(
							adaptor, "rule retval",
							retval != null ? retval.tree : null);

					root_0 = (Object) adaptor.nil();
					// 123:42: -> groupby_item
					{
						adaptor.addChild(root_0, stream_groupby_item.nextTree());

					}

					retval.tree = root_0;
				}
			}

			retval.stop = input.LT(-1);

			if (state.backtracking == 0) {

				retval.tree = (Object) adaptor.rulePostProcessing(root_0);
				adaptor.setTokenBoundaries(retval.tree, retval.start,
						retval.stop);
			}
		} catch (RecognitionException re) {
			reportError(re);
			recover(input, re);
			retval.tree = (Object) adaptor.errorNode(input, retval.start,
					input.LT(-1), re);

		} finally {
		}
		return retval;
	}

	// $ANTLR end "orderby_item"

	public static class limit_clause_return extends ParserRuleReturnScope {
		Object tree;

		public Object getTree() {
			return tree;
		}
	};

	// $ANTLR start "limit_clause"
	// C:\\Users\\grand\\Desktop\\another\\MySQL.g:125:1: limit_clause : LIMIT (
	// ( ( offset COMMA )? row_count ) | ( row_count OFFSET_SYM offset ) ) -> ^(
	// LIMIT row_count ( offset )? ) ;
	public final MySQLParser.limit_clause_return limit_clause()
			throws RecognitionException {
		MySQLParser.limit_clause_return retval = new MySQLParser.limit_clause_return();
		retval.start = input.LT(1);

		Object root_0 = null;

		Token LIMIT75 = null;
		Token COMMA77 = null;
		Token OFFSET_SYM80 = null;
		MySQLParser.offset_return offset76 = null;

		MySQLParser.row_count_return row_count78 = null;

		MySQLParser.row_count_return row_count79 = null;

		MySQLParser.offset_return offset81 = null;

		Object LIMIT75_tree = null;
		Object COMMA77_tree = null;
		Object OFFSET_SYM80_tree = null;
		RewriteRuleTokenStream stream_COMMA = new RewriteRuleTokenStream(
				adaptor, "token COMMA");
		RewriteRuleTokenStream stream_LIMIT = new RewriteRuleTokenStream(
				adaptor, "token LIMIT");
		RewriteRuleTokenStream stream_OFFSET_SYM = new RewriteRuleTokenStream(
				adaptor, "token OFFSET_SYM");
		RewriteRuleSubtreeStream stream_row_count = new RewriteRuleSubtreeStream(
				adaptor, "rule row_count");
		RewriteRuleSubtreeStream stream_offset = new RewriteRuleSubtreeStream(
				adaptor, "rule offset");
		try {
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:125:13: ( LIMIT ( ( (
			// offset COMMA )? row_count ) | ( row_count OFFSET_SYM offset ) )
			// -> ^( LIMIT row_count ( offset )? ) )
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:126:2: LIMIT ( ( (
			// offset COMMA )? row_count ) | ( row_count OFFSET_SYM offset ) )
			{
				LIMIT75 = (Token) match(input, LIMIT,
						FOLLOW_LIMIT_in_limit_clause826);
				if (state.failed)
					return retval;
				if (state.backtracking == 0)
					stream_LIMIT.add(LIMIT75);

				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:126:8: ( ( (
				// offset COMMA )? row_count ) | ( row_count OFFSET_SYM offset )
				// )
				int alt31 = 2;
				int LA31_0 = input.LA(1);

				if ((LA31_0 == INTEGER_NUM)) {
					int LA31_1 = input.LA(2);

					if ((LA31_1 == OFFSET_SYM)) {
						alt31 = 2;
					} else if ((LA31_1 == EOF
							|| (LA31_1 >= SEMI && LA31_1 <= UNION_SYM)
							|| LA31_1 == FOR_SYM || LA31_1 == LOCK
							|| (LA31_1 >= COMMA && LA31_1 <= WITH)
							|| LA31_1 == RPAREN || LA31_1 == ON)) {
						alt31 = 1;
					} else {
						if (state.backtracking > 0) {
							state.failed = true;
							return retval;
						}
						NoViableAltException nvae = new NoViableAltException(
								"", 31, 1, input);

						throw nvae;
					}
				} else {
					if (state.backtracking > 0) {
						state.failed = true;
						return retval;
					}
					NoViableAltException nvae = new NoViableAltException("",
							31, 0, input);

					throw nvae;
				}
				switch (alt31) {
				case 1:
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:126:9: ( ( offset
				// COMMA )? row_count )
				{
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:126:9: ( (
					// offset COMMA )? row_count )
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:126:10: (
					// offset COMMA )? row_count
					{
						// C:\\Users\\grand\\Desktop\\another\\MySQL.g:126:10: (
						// offset COMMA )?
						int alt30 = 2;
						int LA30_0 = input.LA(1);

						if ((LA30_0 == INTEGER_NUM)) {
							int LA30_1 = input.LA(2);

							if ((LA30_1 == COMMA)) {
								alt30 = 1;
							}
						}
						switch (alt30) {
						case 1:
						// C:\\Users\\grand\\Desktop\\another\\MySQL.g:126:11:
						// offset COMMA
						{
							pushFollow(FOLLOW_offset_in_limit_clause831);
							offset76 = offset();

							state._fsp--;
							if (state.failed)
								return retval;
							if (state.backtracking == 0)
								stream_offset.add(offset76.getTree());
							COMMA77 = (Token) match(input, COMMA,
									FOLLOW_COMMA_in_limit_clause833);
							if (state.failed)
								return retval;
							if (state.backtracking == 0)
								stream_COMMA.add(COMMA77);

						}
							break;

						}

						pushFollow(FOLLOW_row_count_in_limit_clause837);
						row_count78 = row_count();

						state._fsp--;
						if (state.failed)
							return retval;
						if (state.backtracking == 0)
							stream_row_count.add(row_count78.getTree());

					}

				}
					break;
				case 2:
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:127:4: (
				// row_count OFFSET_SYM offset )
				{
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:127:4: (
					// row_count OFFSET_SYM offset )
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:127:5:
					// row_count OFFSET_SYM offset
					{
						pushFollow(FOLLOW_row_count_in_limit_clause845);
						row_count79 = row_count();

						state._fsp--;
						if (state.failed)
							return retval;
						if (state.backtracking == 0)
							stream_row_count.add(row_count79.getTree());
						OFFSET_SYM80 = (Token) match(input, OFFSET_SYM,
								FOLLOW_OFFSET_SYM_in_limit_clause847);
						if (state.failed)
							return retval;
						if (state.backtracking == 0)
							stream_OFFSET_SYM.add(OFFSET_SYM80);

						pushFollow(FOLLOW_offset_in_limit_clause849);
						offset81 = offset();

						state._fsp--;
						if (state.failed)
							return retval;
						if (state.backtracking == 0)
							stream_offset.add(offset81.getTree());

					}

				}
					break;

				}

				// AST REWRITE
				// elements: offset, row_count, LIMIT
				// token labels:
				// rule labels: retval
				// token list labels:
				// rule list labels:
				// wildcard labels:
				if (state.backtracking == 0) {
					retval.tree = root_0;
					RewriteRuleSubtreeStream stream_retval = new RewriteRuleSubtreeStream(
							adaptor, "rule retval",
							retval != null ? retval.tree : null);

					root_0 = (Object) adaptor.nil();
					// 128:3: -> ^( LIMIT row_count ( offset )? )
					{
						// C:\\Users\\grand\\Desktop\\another\\MySQL.g:128:5: ^(
						// LIMIT row_count ( offset )? )
						{
							Object root_1 = (Object) adaptor.nil();
							root_1 = (Object) adaptor.becomeRoot(
									stream_LIMIT.nextNode(), root_1);

							adaptor.addChild(root_1,
									stream_row_count.nextTree());
							// C:\\Users\\grand\\Desktop\\another\\MySQL.g:128:23:
							// ( offset )?
							if (stream_offset.hasNext()) {
								adaptor.addChild(root_1,
										stream_offset.nextTree());

							}
							stream_offset.reset();

							adaptor.addChild(root_0, root_1);
						}

					}

					retval.tree = root_0;
				}
			}

			retval.stop = input.LT(-1);

			if (state.backtracking == 0) {

				retval.tree = (Object) adaptor.rulePostProcessing(root_0);
				adaptor.setTokenBoundaries(retval.tree, retval.start,
						retval.stop);
			}
		} catch (RecognitionException re) {
			reportError(re);
			recover(input, re);
			retval.tree = (Object) adaptor.errorNode(input, retval.start,
					input.LT(-1), re);

		} finally {
		}
		return retval;
	}

	// $ANTLR end "limit_clause"

	public static class offset_return extends ParserRuleReturnScope {
		Object tree;

		public Object getTree() {
			return tree;
		}
	};

	// $ANTLR start "offset"
	// C:\\Users\\grand\\Desktop\\another\\MySQL.g:130:1: offset : INTEGER_NUM ;
	public final MySQLParser.offset_return offset() throws RecognitionException {
		MySQLParser.offset_return retval = new MySQLParser.offset_return();
		retval.start = input.LT(1);

		Object root_0 = null;

		Token INTEGER_NUM82 = null;

		Object INTEGER_NUM82_tree = null;

		try {
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:130:7: ( INTEGER_NUM
			// )
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:130:10: INTEGER_NUM
			{
				root_0 = (Object) adaptor.nil();

				INTEGER_NUM82 = (Token) match(input, INTEGER_NUM,
						FOLLOW_INTEGER_NUM_in_offset873);
				if (state.failed)
					return retval;
				if (state.backtracking == 0) {
					INTEGER_NUM82_tree = (Object) adaptor.create(INTEGER_NUM82);
					adaptor.addChild(root_0, INTEGER_NUM82_tree);
				}

			}

			retval.stop = input.LT(-1);

			if (state.backtracking == 0) {

				retval.tree = (Object) adaptor.rulePostProcessing(root_0);
				adaptor.setTokenBoundaries(retval.tree, retval.start,
						retval.stop);
			}
		} catch (RecognitionException re) {
			reportError(re);
			recover(input, re);
			retval.tree = (Object) adaptor.errorNode(input, retval.start,
					input.LT(-1), re);

		} finally {
		}
		return retval;
	}

	// $ANTLR end "offset"

	public static class row_count_return extends ParserRuleReturnScope {
		Object tree;

		public Object getTree() {
			return tree;
		}
	};

	// $ANTLR start "row_count"
	// C:\\Users\\grand\\Desktop\\another\\MySQL.g:131:1: row_count :
	// INTEGER_NUM ;
	public final MySQLParser.row_count_return row_count()
			throws RecognitionException {
		MySQLParser.row_count_return retval = new MySQLParser.row_count_return();
		retval.start = input.LT(1);

		Object root_0 = null;

		Token INTEGER_NUM83 = null;

		Object INTEGER_NUM83_tree = null;

		try {
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:131:10: ( INTEGER_NUM
			// )
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:131:12: INTEGER_NUM
			{
				root_0 = (Object) adaptor.nil();

				INTEGER_NUM83 = (Token) match(input, INTEGER_NUM,
						FOLLOW_INTEGER_NUM_in_row_count880);
				if (state.failed)
					return retval;
				if (state.backtracking == 0) {
					INTEGER_NUM83_tree = (Object) adaptor.create(INTEGER_NUM83);
					adaptor.addChild(root_0, INTEGER_NUM83_tree);
				}

			}

			retval.stop = input.LT(-1);

			if (state.backtracking == 0) {

				retval.tree = (Object) adaptor.rulePostProcessing(root_0);
				adaptor.setTokenBoundaries(retval.tree, retval.start,
						retval.stop);
			}
		} catch (RecognitionException re) {
			reportError(re);
			recover(input, re);
			retval.tree = (Object) adaptor.errorNode(input, retval.start,
					input.LT(-1), re);

		} finally {
		}
		return retval;
	}

	// $ANTLR end "row_count"

	public static class select_list_return extends ParserRuleReturnScope {
		Object tree;

		public Object getTree() {
			return tree;
		}
	};

	// $ANTLR start "select_list"
	// C:\\Users\\grand\\Desktop\\another\\MySQL.g:133:1: select_list : ( (
	// displayed_column ( COMMA displayed_column )* ) -> ( displayed_column )+ |
	// ASTERISK -> ASTERISK ) ;
	public final MySQLParser.select_list_return select_list()
			throws RecognitionException {
		MySQLParser.select_list_return retval = new MySQLParser.select_list_return();
		retval.start = input.LT(1);

		Object root_0 = null;

		Token COMMA85 = null;
		Token ASTERISK87 = null;
		MySQLParser.displayed_column_return displayed_column84 = null;

		MySQLParser.displayed_column_return displayed_column86 = null;

		Object COMMA85_tree = null;
		Object ASTERISK87_tree = null;
		RewriteRuleTokenStream stream_COMMA = new RewriteRuleTokenStream(
				adaptor, "token COMMA");
		RewriteRuleTokenStream stream_ASTERISK = new RewriteRuleTokenStream(
				adaptor, "token ASTERISK");
		RewriteRuleSubtreeStream stream_displayed_column = new RewriteRuleSubtreeStream(
				adaptor, "rule displayed_column");
		try {
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:133:12: ( ( (
			// displayed_column ( COMMA displayed_column )* ) -> (
			// displayed_column )+ | ASTERISK -> ASTERISK ) )
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:134:2: ( (
			// displayed_column ( COMMA displayed_column )* ) -> (
			// displayed_column )+ | ASTERISK -> ASTERISK )
			{
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:134:2: ( (
				// displayed_column ( COMMA displayed_column )* ) -> (
				// displayed_column )+ | ASTERISK -> ASTERISK )
				int alt33 = 2;
				int LA33_0 = input.LA(1);

				if ((LA33_0 == INTEGER_NUM || LA33_0 == LPAREN
						|| LA33_0 == INSERT || LA33_0 == VALUES
						|| LA33_0 == DEFAULT || LA33_0 == IF
						|| LA33_0 == EXISTS || LA33_0 == TEXT_STRING
						|| LA33_0 == NULL_SYM
						|| (LA33_0 >= DATE_SYM && LA33_0 <= TIMESTAMP)
						|| (LA33_0 >= YEAR && LA33_0 <= CHAR)
						|| LA33_0 == BINARY || LA33_0 == MATCH
						|| LA33_0 == PASSWORD || LA33_0 == CONVERT_SYM
						|| LA33_0 == TRUNCATE || LA33_0 == REPLACE
						|| LA33_0 == CURRENT_USER || LA33_0 == ASCII_SYM
						|| (LA33_0 >= SECOND && LA33_0 <= HOUR)
						|| (LA33_0 >= WEEK && LA33_0 <= QUARTER)
						|| (LA33_0 >= PLUS && LA33_0 <= ID)
						|| (LA33_0 >= NEGATION && LA33_0 <= CASE_SYM) || LA33_0 == INTERVAL_SYM)) {
					alt33 = 1;
				} else if ((LA33_0 == ASTERISK)) {
					alt33 = 2;
				} else {
					if (state.backtracking > 0) {
						state.failed = true;
						return retval;
					}
					NoViableAltException nvae = new NoViableAltException("",
							33, 0, input);

					throw nvae;
				}
				switch (alt33) {
				case 1:
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:134:4: (
				// displayed_column ( COMMA displayed_column )* )
				{
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:134:4: (
					// displayed_column ( COMMA displayed_column )* )
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:134:6:
					// displayed_column ( COMMA displayed_column )*
					{
						pushFollow(FOLLOW_displayed_column_in_select_list893);
						displayed_column84 = displayed_column();

						state._fsp--;
						if (state.failed)
							return retval;
						if (state.backtracking == 0)
							stream_displayed_column.add(displayed_column84
									.getTree());
						// C:\\Users\\grand\\Desktop\\another\\MySQL.g:134:23: (
						// COMMA displayed_column )*
						loop32: do {
							int alt32 = 2;
							int LA32_0 = input.LA(1);

							if ((LA32_0 == COMMA)) {
								alt32 = 1;
							}

							switch (alt32) {
							case 1:
							// C:\\Users\\grand\\Desktop\\another\\MySQL.g:134:25:
							// COMMA displayed_column
							{
								COMMA85 = (Token) match(input, COMMA,
										FOLLOW_COMMA_in_select_list897);
								if (state.failed)
									return retval;
								if (state.backtracking == 0)
									stream_COMMA.add(COMMA85);

								pushFollow(FOLLOW_displayed_column_in_select_list899);
								displayed_column86 = displayed_column();

								state._fsp--;
								if (state.failed)
									return retval;
								if (state.backtracking == 0)
									stream_displayed_column
											.add(displayed_column86.getTree());

							}
								break;

							default:
								break loop32;
							}
						} while (true);

					}

					// AST REWRITE
					// elements: displayed_column
					// token labels:
					// rule labels: retval
					// token list labels:
					// rule list labels:
					// wildcard labels:
					if (state.backtracking == 0) {
						retval.tree = root_0;
						RewriteRuleSubtreeStream stream_retval = new RewriteRuleSubtreeStream(
								adaptor, "rule retval",
								retval != null ? retval.tree : null);

						root_0 = (Object) adaptor.nil();
						// 134:51: -> ( displayed_column )+
						{
							if (!(stream_displayed_column.hasNext())) {
								throw new RewriteEarlyExitException();
							}
							while (stream_displayed_column.hasNext()) {
								adaptor.addChild(root_0,
										stream_displayed_column.nextTree());

							}
							stream_displayed_column.reset();

						}

						retval.tree = root_0;
					}
				}
					break;
				case 2:
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:135:4: ASTERISK
				{
					ASTERISK87 = (Token) match(input, ASTERISK,
							FOLLOW_ASTERISK_in_select_list912);
					if (state.failed)
						return retval;
					if (state.backtracking == 0)
						stream_ASTERISK.add(ASTERISK87);

					// AST REWRITE
					// elements: ASTERISK
					// token labels:
					// rule labels: retval
					// token list labels:
					// rule list labels:
					// wildcard labels:
					if (state.backtracking == 0) {
						retval.tree = root_0;
						RewriteRuleSubtreeStream stream_retval = new RewriteRuleSubtreeStream(
								adaptor, "rule retval",
								retval != null ? retval.tree : null);

						root_0 = (Object) adaptor.nil();
						// 135:13: -> ASTERISK
						{
							adaptor.addChild(root_0, stream_ASTERISK.nextNode());

						}

						retval.tree = root_0;
					}
				}
					break;

				}

			}

			retval.stop = input.LT(-1);

			if (state.backtracking == 0) {

				retval.tree = (Object) adaptor.rulePostProcessing(root_0);
				adaptor.setTokenBoundaries(retval.tree, retval.start,
						retval.stop);
			}
		} catch (RecognitionException re) {
			reportError(re);
			recover(input, re);
			retval.tree = (Object) adaptor.errorNode(input, retval.start,
					input.LT(-1), re);

		} finally {
		}
		return retval;
	}

	// $ANTLR end "select_list"

	public static class column_list_return extends ParserRuleReturnScope {
		Object tree;

		public Object getTree() {
			return tree;
		}
	};

	// $ANTLR start "column_list"
	// C:\\Users\\grand\\Desktop\\another\\MySQL.g:139:1: column_list : LPAREN
	// column_spec ( COMMA column_spec )* RPAREN -> ^( COLUMNS ( column_spec )+
	// ) ;
	public final MySQLParser.column_list_return column_list()
			throws RecognitionException {
		MySQLParser.column_list_return retval = new MySQLParser.column_list_return();
		retval.start = input.LT(1);

		Object root_0 = null;

		Token LPAREN88 = null;
		Token COMMA90 = null;
		Token RPAREN92 = null;
		MySQLParser.column_spec_return column_spec89 = null;

		MySQLParser.column_spec_return column_spec91 = null;

		Object LPAREN88_tree = null;
		Object COMMA90_tree = null;
		Object RPAREN92_tree = null;
		RewriteRuleTokenStream stream_RPAREN = new RewriteRuleTokenStream(
				adaptor, "token RPAREN");
		RewriteRuleTokenStream stream_COMMA = new RewriteRuleTokenStream(
				adaptor, "token COMMA");
		RewriteRuleTokenStream stream_LPAREN = new RewriteRuleTokenStream(
				adaptor, "token LPAREN");
		RewriteRuleSubtreeStream stream_column_spec = new RewriteRuleSubtreeStream(
				adaptor, "rule column_spec");
		try {
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:139:12: ( LPAREN
			// column_spec ( COMMA column_spec )* RPAREN -> ^( COLUMNS (
			// column_spec )+ ) )
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:140:2: LPAREN
			// column_spec ( COMMA column_spec )* RPAREN
			{
				LPAREN88 = (Token) match(input, LPAREN,
						FOLLOW_LPAREN_in_column_list929);
				if (state.failed)
					return retval;
				if (state.backtracking == 0)
					stream_LPAREN.add(LPAREN88);

				pushFollow(FOLLOW_column_spec_in_column_list931);
				column_spec89 = column_spec();

				state._fsp--;
				if (state.failed)
					return retval;
				if (state.backtracking == 0)
					stream_column_spec.add(column_spec89.getTree());
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:140:21: ( COMMA
				// column_spec )*
				loop34: do {
					int alt34 = 2;
					int LA34_0 = input.LA(1);

					if ((LA34_0 == COMMA)) {
						alt34 = 1;
					}

					switch (alt34) {
					case 1:
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:140:22: COMMA
					// column_spec
					{
						COMMA90 = (Token) match(input, COMMA,
								FOLLOW_COMMA_in_column_list934);
						if (state.failed)
							return retval;
						if (state.backtracking == 0)
							stream_COMMA.add(COMMA90);

						pushFollow(FOLLOW_column_spec_in_column_list936);
						column_spec91 = column_spec();

						state._fsp--;
						if (state.failed)
							return retval;
						if (state.backtracking == 0)
							stream_column_spec.add(column_spec91.getTree());

					}
						break;

					default:
						break loop34;
					}
				} while (true);

				RPAREN92 = (Token) match(input, RPAREN,
						FOLLOW_RPAREN_in_column_list940);
				if (state.failed)
					return retval;
				if (state.backtracking == 0)
					stream_RPAREN.add(RPAREN92);

				// AST REWRITE
				// elements: column_spec
				// token labels:
				// rule labels: retval
				// token list labels:
				// rule list labels:
				// wildcard labels:
				if (state.backtracking == 0) {
					retval.tree = root_0;
					RewriteRuleSubtreeStream stream_retval = new RewriteRuleSubtreeStream(
							adaptor, "rule retval",
							retval != null ? retval.tree : null);

					root_0 = (Object) adaptor.nil();
					// 140:49: -> ^( COLUMNS ( column_spec )+ )
					{
						// C:\\Users\\grand\\Desktop\\another\\MySQL.g:140:52:
						// ^( COLUMNS ( column_spec )+ )
						{
							Object root_1 = (Object) adaptor.nil();
							root_1 = (Object) adaptor
									.becomeRoot((Object) adaptor.create(
											COLUMNS, "COLUMNS"), root_1);

							if (!(stream_column_spec.hasNext())) {
								throw new RewriteEarlyExitException();
							}
							while (stream_column_spec.hasNext()) {
								adaptor.addChild(root_1,
										stream_column_spec.nextTree());

							}
							stream_column_spec.reset();

							adaptor.addChild(root_0, root_1);
						}

					}

					retval.tree = root_0;
				}
			}

			retval.stop = input.LT(-1);

			if (state.backtracking == 0) {

				retval.tree = (Object) adaptor.rulePostProcessing(root_0);
				adaptor.setTokenBoundaries(retval.tree, retval.start,
						retval.stop);
			}
		} catch (RecognitionException re) {
			reportError(re);
			recover(input, re);
			retval.tree = (Object) adaptor.errorNode(input, retval.start,
					input.LT(-1), re);

		} finally {
		}
		return retval;
	}

	// $ANTLR end "column_list"

	public static class subquery_return extends ParserRuleReturnScope {
		Object tree;

		public Object getTree() {
			return tree;
		}
	};

	// $ANTLR start "subquery"
	// C:\\Users\\grand\\Desktop\\another\\MySQL.g:143:1: subquery : LPAREN
	// select_statement RPAREN -> select_statement ;
	public final MySQLParser.subquery_return subquery()
			throws RecognitionException {
		MySQLParser.subquery_return retval = new MySQLParser.subquery_return();
		retval.start = input.LT(1);

		Object root_0 = null;

		Token LPAREN93 = null;
		Token RPAREN95 = null;
		MySQLParser.select_statement_return select_statement94 = null;

		Object LPAREN93_tree = null;
		Object RPAREN95_tree = null;
		RewriteRuleTokenStream stream_RPAREN = new RewriteRuleTokenStream(
				adaptor, "token RPAREN");
		RewriteRuleTokenStream stream_LPAREN = new RewriteRuleTokenStream(
				adaptor, "token LPAREN");
		RewriteRuleSubtreeStream stream_select_statement = new RewriteRuleSubtreeStream(
				adaptor, "rule select_statement");
		try {
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:143:9: ( LPAREN
			// select_statement RPAREN -> select_statement )
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:144:2: LPAREN
			// select_statement RPAREN
			{
				LPAREN93 = (Token) match(input, LPAREN,
						FOLLOW_LPAREN_in_subquery958);
				if (state.failed)
					return retval;
				if (state.backtracking == 0)
					stream_LPAREN.add(LPAREN93);

				pushFollow(FOLLOW_select_statement_in_subquery960);
				select_statement94 = select_statement();

				state._fsp--;
				if (state.failed)
					return retval;
				if (state.backtracking == 0)
					stream_select_statement.add(select_statement94.getTree());
				RPAREN95 = (Token) match(input, RPAREN,
						FOLLOW_RPAREN_in_subquery962);
				if (state.failed)
					return retval;
				if (state.backtracking == 0)
					stream_RPAREN.add(RPAREN95);

				// AST REWRITE
				// elements: select_statement
				// token labels:
				// rule labels: retval
				// token list labels:
				// rule list labels:
				// wildcard labels:
				if (state.backtracking == 0) {
					retval.tree = root_0;
					RewriteRuleSubtreeStream stream_retval = new RewriteRuleSubtreeStream(
							adaptor, "rule retval",
							retval != null ? retval.tree : null);

					root_0 = (Object) adaptor.nil();
					// 144:33: -> select_statement
					{
						adaptor.addChild(root_0,
								stream_select_statement.nextTree());

					}

					retval.tree = root_0;
				}
			}

			retval.stop = input.LT(-1);

			if (state.backtracking == 0) {

				retval.tree = (Object) adaptor.rulePostProcessing(root_0);
				adaptor.setTokenBoundaries(retval.tree, retval.start,
						retval.stop);
			}
		} catch (RecognitionException re) {
			reportError(re);
			recover(input, re);
			retval.tree = (Object) adaptor.errorNode(input, retval.start,
					input.LT(-1), re);

		} finally {
		}
		return retval;
	}

	// $ANTLR end "subquery"

	public static class table_spec_return extends ParserRuleReturnScope {
		Object tree;

		public Object getTree() {
			return tree;
		}
	};

	// $ANTLR start "table_spec"
	// C:\\Users\\grand\\Desktop\\another\\MySQL.g:147:1: table_spec : (
	// schema_name DOT )? table_name -> table_name ;
	public final MySQLParser.table_spec_return table_spec()
			throws RecognitionException {
		MySQLParser.table_spec_return retval = new MySQLParser.table_spec_return();
		retval.start = input.LT(1);

		Object root_0 = null;

		Token DOT97 = null;
		MySQLParser.schema_name_return schema_name96 = null;

		MySQLParser.table_name_return table_name98 = null;

		Object DOT97_tree = null;
		RewriteRuleTokenStream stream_DOT = new RewriteRuleTokenStream(adaptor,
				"token DOT");
		RewriteRuleSubtreeStream stream_schema_name = new RewriteRuleSubtreeStream(
				adaptor, "rule schema_name");
		RewriteRuleSubtreeStream stream_table_name = new RewriteRuleSubtreeStream(
				adaptor, "rule table_name");
		try {
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:147:11: ( (
			// schema_name DOT )? table_name -> table_name )
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:148:2: ( schema_name
			// DOT )? table_name
			{
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:148:2: (
				// schema_name DOT )?
				int alt35 = 2;
				int LA35_0 = input.LA(1);

				if ((LA35_0 == ID)) {
					int LA35_1 = input.LA(2);

					if ((LA35_1 == DOT)) {
						int LA35_2 = input.LA(3);

						if ((LA35_2 == ID)) {
							alt35 = 1;
						}
					}
				}
				switch (alt35) {
				case 1:
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:148:4:
				// schema_name DOT
				{
					pushFollow(FOLLOW_schema_name_in_table_spec977);
					schema_name96 = schema_name();

					state._fsp--;
					if (state.failed)
						return retval;
					if (state.backtracking == 0)
						stream_schema_name.add(schema_name96.getTree());
					DOT97 = (Token) match(input, DOT,
							FOLLOW_DOT_in_table_spec979);
					if (state.failed)
						return retval;
					if (state.backtracking == 0)
						stream_DOT.add(DOT97);

				}
					break;

				}

				pushFollow(FOLLOW_table_name_in_table_spec984);
				table_name98 = table_name();

				state._fsp--;
				if (state.failed)
					return retval;
				if (state.backtracking == 0)
					stream_table_name.add(table_name98.getTree());

				// AST REWRITE
				// elements: table_name
				// token labels:
				// rule labels: retval
				// token list labels:
				// rule list labels:
				// wildcard labels:
				if (state.backtracking == 0) {
					retval.tree = root_0;
					RewriteRuleSubtreeStream stream_retval = new RewriteRuleSubtreeStream(
							adaptor, "rule retval",
							retval != null ? retval.tree : null);

					root_0 = (Object) adaptor.nil();
					// 148:34: -> table_name
					{
						adaptor.addChild(root_0, stream_table_name.nextTree());

					}

					retval.tree = root_0;
				}
			}

			retval.stop = input.LT(-1);

			if (state.backtracking == 0) {

				retval.tree = (Object) adaptor.rulePostProcessing(root_0);
				adaptor.setTokenBoundaries(retval.tree, retval.start,
						retval.stop);
			}
		} catch (RecognitionException re) {
			reportError(re);
			recover(input, re);
			retval.tree = (Object) adaptor.errorNode(input, retval.start,
					input.LT(-1), re);

		} finally {
		}
		return retval;
	}

	// $ANTLR end "table_spec"

	public static class displayed_column_return extends ParserRuleReturnScope {
		Object tree;

		public Object getTree() {
			return tree;
		}
	};

	// $ANTLR start "displayed_column"
	// C:\\Users\\grand\\Desktop\\another\\MySQL.g:151:1: displayed_column : ( (
	// table_spec DOT ASTERISK ) -> ^( DOT table_spec ASTERISK ) | ( column_spec
	// ( alias -> ^( AS_OP column_spec alias ) )? ) | ( bit_expr ( alias -> ^(
	// AS_OP bit_expr alias ) )? ) );
	public final MySQLParser.displayed_column_return displayed_column()
			throws RecognitionException {
		MySQLParser.displayed_column_return retval = new MySQLParser.displayed_column_return();
		retval.start = input.LT(1);

		Object root_0 = null;

		Token DOT100 = null;
		Token ASTERISK101 = null;
		MySQLParser.table_spec_return table_spec99 = null;

		MySQLParser.column_spec_return column_spec102 = null;

		MySQLParser.alias_return alias103 = null;

		MySQLParser.bit_expr_return bit_expr104 = null;

		MySQLParser.alias_return alias105 = null;

		Object DOT100_tree = null;
		Object ASTERISK101_tree = null;
		RewriteRuleTokenStream stream_DOT = new RewriteRuleTokenStream(adaptor,
				"token DOT");
		RewriteRuleTokenStream stream_ASTERISK = new RewriteRuleTokenStream(
				adaptor, "token ASTERISK");
		RewriteRuleSubtreeStream stream_bit_expr = new RewriteRuleSubtreeStream(
				adaptor, "rule bit_expr");
		RewriteRuleSubtreeStream stream_alias = new RewriteRuleSubtreeStream(
				adaptor, "rule alias");
		RewriteRuleSubtreeStream stream_column_spec = new RewriteRuleSubtreeStream(
				adaptor, "rule column_spec");
		RewriteRuleSubtreeStream stream_table_spec = new RewriteRuleSubtreeStream(
				adaptor, "rule table_spec");
		try {
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:151:18: ( (
			// table_spec DOT ASTERISK ) -> ^( DOT table_spec ASTERISK ) | (
			// column_spec ( alias -> ^( AS_OP column_spec alias ) )? ) | (
			// bit_expr ( alias -> ^( AS_OP bit_expr alias ) )? ) )
			int alt38 = 3;
			int LA38_0 = input.LA(1);

			if ((LA38_0 == ID)) {
				int LA38_1 = input.LA(2);

				if ((LA38_1 == DOT)) {
					alt38 = 1;
				} else if ((synpred55_MySQL())) {
					alt38 = 2;
				} else if ((true)) {
					alt38 = 3;
				} else {
					if (state.backtracking > 0) {
						state.failed = true;
						return retval;
					}
					NoViableAltException nvae = new NoViableAltException("",
							38, 1, input);

					throw nvae;
				}
			} else if ((LA38_0 == INTEGER_NUM || LA38_0 == LPAREN
					|| LA38_0 == INSERT || LA38_0 == VALUES
					|| LA38_0 == DEFAULT || LA38_0 == IF || LA38_0 == EXISTS
					|| LA38_0 == TEXT_STRING || LA38_0 == NULL_SYM
					|| (LA38_0 >= DATE_SYM && LA38_0 <= TIMESTAMP)
					|| (LA38_0 >= YEAR && LA38_0 <= CHAR) || LA38_0 == BINARY
					|| LA38_0 == MATCH || LA38_0 == PASSWORD
					|| LA38_0 == CONVERT_SYM || LA38_0 == TRUNCATE
					|| LA38_0 == REPLACE || LA38_0 == CURRENT_USER
					|| LA38_0 == ASCII_SYM
					|| (LA38_0 >= SECOND && LA38_0 <= HOUR)
					|| (LA38_0 >= WEEK && LA38_0 <= QUARTER)
					|| (LA38_0 >= PLUS && LA38_0 <= VARIANCE)
					|| (LA38_0 >= NEGATION && LA38_0 <= CASE_SYM) || LA38_0 == INTERVAL_SYM)) {
				alt38 = 3;
			} else {
				if (state.backtracking > 0) {
					state.failed = true;
					return retval;
				}
				NoViableAltException nvae = new NoViableAltException("", 38, 0,
						input);

				throw nvae;
			}
			switch (alt38) {
			case 1:
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:152:2: ( table_spec
			// DOT ASTERISK )
			{
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:152:2: (
				// table_spec DOT ASTERISK )
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:152:4: table_spec
				// DOT ASTERISK
				{
					pushFollow(FOLLOW_table_spec_in_displayed_column1000);
					table_spec99 = table_spec();

					state._fsp--;
					if (state.failed)
						return retval;
					if (state.backtracking == 0)
						stream_table_spec.add(table_spec99.getTree());
					DOT100 = (Token) match(input, DOT,
							FOLLOW_DOT_in_displayed_column1002);
					if (state.failed)
						return retval;
					if (state.backtracking == 0)
						stream_DOT.add(DOT100);

					ASTERISK101 = (Token) match(input, ASTERISK,
							FOLLOW_ASTERISK_in_displayed_column1004);
					if (state.failed)
						return retval;
					if (state.backtracking == 0)
						stream_ASTERISK.add(ASTERISK101);

				}

				// AST REWRITE
				// elements: ASTERISK, DOT, table_spec
				// token labels:
				// rule labels: retval
				// token list labels:
				// rule list labels:
				// wildcard labels:
				if (state.backtracking == 0) {
					retval.tree = root_0;
					RewriteRuleSubtreeStream stream_retval = new RewriteRuleSubtreeStream(
							adaptor, "rule retval",
							retval != null ? retval.tree : null);

					root_0 = (Object) adaptor.nil();
					// 152:29: -> ^( DOT table_spec ASTERISK )
					{
						// C:\\Users\\grand\\Desktop\\another\\MySQL.g:152:32:
						// ^( DOT table_spec ASTERISK )
						{
							Object root_1 = (Object) adaptor.nil();
							root_1 = (Object) adaptor.becomeRoot(
									stream_DOT.nextNode(), root_1);

							adaptor.addChild(root_1,
									stream_table_spec.nextTree());
							adaptor.addChild(root_1, stream_ASTERISK.nextNode());

							adaptor.addChild(root_0, root_1);
						}

					}

					retval.tree = root_0;
				}
			}
				break;
			case 2:
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:154:2: ( column_spec
			// ( alias -> ^( AS_OP column_spec alias ) )? )
			{
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:154:2: (
				// column_spec ( alias -> ^( AS_OP column_spec alias ) )? )
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:154:4:
				// column_spec ( alias -> ^( AS_OP column_spec alias ) )?
				{
					pushFollow(FOLLOW_column_spec_in_displayed_column1023);
					column_spec102 = column_spec();

					state._fsp--;
					if (state.failed)
						return retval;
					if (state.backtracking == 0)
						stream_column_spec.add(column_spec102.getTree());
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:154:16: (
					// alias -> ^( AS_OP column_spec alias ) )?
					int alt36 = 2;
					int LA36_0 = input.LA(1);

					if ((LA36_0 == AS_SYM || LA36_0 == ID)) {
						alt36 = 1;
					}
					switch (alt36) {
					case 1:
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:154:18: alias
					{
						pushFollow(FOLLOW_alias_in_displayed_column1027);
						alias103 = alias();

						state._fsp--;
						if (state.failed)
							return retval;
						if (state.backtracking == 0)
							stream_alias.add(alias103.getTree());

						// AST REWRITE
						// elements: alias, column_spec
						// token labels:
						// rule labels: retval
						// token list labels:
						// rule list labels:
						// wildcard labels:
						if (state.backtracking == 0) {
							retval.tree = root_0;
							RewriteRuleSubtreeStream stream_retval = new RewriteRuleSubtreeStream(
									adaptor, "rule retval",
									retval != null ? retval.tree : null);

							root_0 = (Object) adaptor.nil();
							// 154:24: -> ^( AS_OP column_spec alias )
							{
								// C:\\Users\\grand\\Desktop\\another\\MySQL.g:154:27:
								// ^( AS_OP column_spec alias )
								{
									Object root_1 = (Object) adaptor.nil();
									root_1 = (Object) adaptor.becomeRoot(
											(Object) adaptor.create(AS_OP,
													"AS_OP"), root_1);

									adaptor.addChild(root_1,
											stream_column_spec.nextTree());
									adaptor.addChild(root_1,
											stream_alias.nextTree());

									adaptor.addChild(root_0, root_1);
								}

							}

							retval.tree = root_0;
						}
					}
						break;

					}

				}

			}
				break;
			case 3:
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:156:2: ( bit_expr (
			// alias -> ^( AS_OP bit_expr alias ) )? )
			{
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:156:2: ( bit_expr
				// ( alias -> ^( AS_OP bit_expr alias ) )? )
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:156:4: bit_expr (
				// alias -> ^( AS_OP bit_expr alias ) )?
				{
					pushFollow(FOLLOW_bit_expr_in_displayed_column1050);
					bit_expr104 = bit_expr();

					state._fsp--;
					if (state.failed)
						return retval;
					if (state.backtracking == 0)
						stream_bit_expr.add(bit_expr104.getTree());
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:156:13: (
					// alias -> ^( AS_OP bit_expr alias ) )?
					int alt37 = 2;
					int LA37_0 = input.LA(1);

					if ((LA37_0 == AS_SYM || LA37_0 == ID)) {
						alt37 = 1;
					}
					switch (alt37) {
					case 1:
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:156:14: alias
					{
						pushFollow(FOLLOW_alias_in_displayed_column1053);
						alias105 = alias();

						state._fsp--;
						if (state.failed)
							return retval;
						if (state.backtracking == 0)
							stream_alias.add(alias105.getTree());

						// AST REWRITE
						// elements: alias, bit_expr
						// token labels:
						// rule labels: retval
						// token list labels:
						// rule list labels:
						// wildcard labels:
						if (state.backtracking == 0) {
							retval.tree = root_0;
							RewriteRuleSubtreeStream stream_retval = new RewriteRuleSubtreeStream(
									adaptor, "rule retval",
									retval != null ? retval.tree : null);

							root_0 = (Object) adaptor.nil();
							// 156:20: -> ^( AS_OP bit_expr alias )
							{
								// C:\\Users\\grand\\Desktop\\another\\MySQL.g:156:23:
								// ^( AS_OP bit_expr alias )
								{
									Object root_1 = (Object) adaptor.nil();
									root_1 = (Object) adaptor.becomeRoot(
											(Object) adaptor.create(AS_OP,
													"AS_OP"), root_1);

									adaptor.addChild(root_1,
											stream_bit_expr.nextTree());
									adaptor.addChild(root_1,
											stream_alias.nextTree());

									adaptor.addChild(root_0, root_1);
								}

							}

							retval.tree = root_0;
						}
					}
						break;

					}

				}

			}
				break;

			}
			retval.stop = input.LT(-1);

			if (state.backtracking == 0) {

				retval.tree = (Object) adaptor.rulePostProcessing(root_0);
				adaptor.setTokenBoundaries(retval.tree, retval.start,
						retval.stop);
			}
		} catch (RecognitionException re) {
			reportError(re);
			recover(input, re);
			retval.tree = (Object) adaptor.errorNode(input, retval.start,
					input.LT(-1), re);

		} finally {
		}
		return retval;
	}

	// $ANTLR end "displayed_column"

	public static class delete_statements_return extends ParserRuleReturnScope {
		Object tree;

		public Object getTree() {
			return tree;
		}
	};

	// $ANTLR start "delete_statements"
	// C:\\Users\\grand\\Desktop\\another\\MySQL.g:161:1: delete_statements :
	// DELETE_SYM ( LOW_PRIORITY )? ( QUICK )? ( IGNORE_SYM )? (
	// delete_single_table_statement -> delete_single_table_statement |
	// delete_multiple_table_statement1 -> delete_multiple_table_statement1 |
	// delete_multiple_table_statement2 -> delete_multiple_table_statement2 ) ;
	public final MySQLParser.delete_statements_return delete_statements()
			throws RecognitionException {
		MySQLParser.delete_statements_return retval = new MySQLParser.delete_statements_return();
		retval.start = input.LT(1);

		Object root_0 = null;

		Token DELETE_SYM106 = null;
		Token LOW_PRIORITY107 = null;
		Token QUICK108 = null;
		Token IGNORE_SYM109 = null;
		MySQLParser.delete_single_table_statement_return delete_single_table_statement110 = null;

		MySQLParser.delete_multiple_table_statement1_return delete_multiple_table_statement1111 = null;

		MySQLParser.delete_multiple_table_statement2_return delete_multiple_table_statement2112 = null;

		Object DELETE_SYM106_tree = null;
		Object LOW_PRIORITY107_tree = null;
		Object QUICK108_tree = null;
		Object IGNORE_SYM109_tree = null;
		RewriteRuleTokenStream stream_DELETE_SYM = new RewriteRuleTokenStream(
				adaptor, "token DELETE_SYM");
		RewriteRuleTokenStream stream_LOW_PRIORITY = new RewriteRuleTokenStream(
				adaptor, "token LOW_PRIORITY");
		RewriteRuleTokenStream stream_QUICK = new RewriteRuleTokenStream(
				adaptor, "token QUICK");
		RewriteRuleTokenStream stream_IGNORE_SYM = new RewriteRuleTokenStream(
				adaptor, "token IGNORE_SYM");
		RewriteRuleSubtreeStream stream_delete_multiple_table_statement1 = new RewriteRuleSubtreeStream(
				adaptor, "rule delete_multiple_table_statement1");
		RewriteRuleSubtreeStream stream_delete_single_table_statement = new RewriteRuleSubtreeStream(
				adaptor, "rule delete_single_table_statement");
		RewriteRuleSubtreeStream stream_delete_multiple_table_statement2 = new RewriteRuleSubtreeStream(
				adaptor, "rule delete_multiple_table_statement2");
		try {
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:161:18: ( DELETE_SYM
			// ( LOW_PRIORITY )? ( QUICK )? ( IGNORE_SYM )? (
			// delete_single_table_statement -> delete_single_table_statement |
			// delete_multiple_table_statement1 ->
			// delete_multiple_table_statement1 |
			// delete_multiple_table_statement2 ->
			// delete_multiple_table_statement2 ) )
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:162:2: DELETE_SYM (
			// LOW_PRIORITY )? ( QUICK )? ( IGNORE_SYM )? (
			// delete_single_table_statement -> delete_single_table_statement |
			// delete_multiple_table_statement1 ->
			// delete_multiple_table_statement1 |
			// delete_multiple_table_statement2 ->
			// delete_multiple_table_statement2 )
			{
				DELETE_SYM106 = (Token) match(input, DELETE_SYM,
						FOLLOW_DELETE_SYM_in_delete_statements1078);
				if (state.failed)
					return retval;
				if (state.backtracking == 0)
					stream_DELETE_SYM.add(DELETE_SYM106);

				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:162:13: (
				// LOW_PRIORITY )?
				int alt39 = 2;
				int LA39_0 = input.LA(1);

				if ((LA39_0 == LOW_PRIORITY)) {
					alt39 = 1;
				}
				switch (alt39) {
				case 1:
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:162:14:
				// LOW_PRIORITY
				{
					LOW_PRIORITY107 = (Token) match(input, LOW_PRIORITY,
							FOLLOW_LOW_PRIORITY_in_delete_statements1081);
					if (state.failed)
						return retval;
					if (state.backtracking == 0)
						stream_LOW_PRIORITY.add(LOW_PRIORITY107);

				}
					break;

				}

				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:162:29: ( QUICK
				// )?
				int alt40 = 2;
				int LA40_0 = input.LA(1);

				if ((LA40_0 == QUICK)) {
					alt40 = 1;
				}
				switch (alt40) {
				case 1:
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:162:30: QUICK
				{
					QUICK108 = (Token) match(input, QUICK,
							FOLLOW_QUICK_in_delete_statements1086);
					if (state.failed)
						return retval;
					if (state.backtracking == 0)
						stream_QUICK.add(QUICK108);

				}
					break;

				}

				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:162:38: (
				// IGNORE_SYM )?
				int alt41 = 2;
				int LA41_0 = input.LA(1);

				if ((LA41_0 == IGNORE_SYM)) {
					alt41 = 1;
				}
				switch (alt41) {
				case 1:
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:162:39:
				// IGNORE_SYM
				{
					IGNORE_SYM109 = (Token) match(input, IGNORE_SYM,
							FOLLOW_IGNORE_SYM_in_delete_statements1091);
					if (state.failed)
						return retval;
					if (state.backtracking == 0)
						stream_IGNORE_SYM.add(IGNORE_SYM109);

				}
					break;

				}

				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:163:2: (
				// delete_single_table_statement ->
				// delete_single_table_statement |
				// delete_multiple_table_statement1 ->
				// delete_multiple_table_statement1 |
				// delete_multiple_table_statement2 ->
				// delete_multiple_table_statement2 )
				int alt42 = 3;
				int LA42_0 = input.LA(1);

				if ((LA42_0 == FROM)) {
					int LA42_1 = input.LA(2);

					if ((LA42_1 == ID)) {
						switch (input.LA(3)) {
						case COMMA:
						case ALL_FIELDS:
						case USING_SYM: {
							alt42 = 3;
						}
							break;
						case EOF:
						case SEMI:
						case WHERE:
						case ORDER_SYM:
						case LIMIT:
						case PARTITION_SYM: {
							alt42 = 1;
						}
							break;
						case DOT: {
							int LA42_6 = input.LA(4);

							if ((LA42_6 == ID)) {
								int LA42_7 = input.LA(5);

								if ((LA42_7 == COMMA || (LA42_7 >= ALL_FIELDS && LA42_7 <= USING_SYM))) {
									alt42 = 3;
								} else if ((LA42_7 == EOF || LA42_7 == SEMI
										|| LA42_7 == WHERE
										|| LA42_7 == ORDER_SYM
										|| LA42_7 == LIMIT || LA42_7 == PARTITION_SYM)) {
									alt42 = 1;
								} else {
									if (state.backtracking > 0) {
										state.failed = true;
										return retval;
									}
									NoViableAltException nvae = new NoViableAltException(
											"", 42, 7, input);

									throw nvae;
								}
							} else {
								if (state.backtracking > 0) {
									state.failed = true;
									return retval;
								}
								NoViableAltException nvae = new NoViableAltException(
										"", 42, 6, input);

								throw nvae;
							}
						}
							break;
						default:
							if (state.backtracking > 0) {
								state.failed = true;
								return retval;
							}
							NoViableAltException nvae = new NoViableAltException(
									"", 42, 3, input);

							throw nvae;
						}

					} else {
						if (state.backtracking > 0) {
							state.failed = true;
							return retval;
						}
						NoViableAltException nvae = new NoViableAltException(
								"", 42, 1, input);

						throw nvae;
					}
				} else if ((LA42_0 == ID)) {
					alt42 = 2;
				} else {
					if (state.backtracking > 0) {
						state.failed = true;
						return retval;
					}
					NoViableAltException nvae = new NoViableAltException("",
							42, 0, input);

					throw nvae;
				}
				switch (alt42) {
				case 1:
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:163:4:
				// delete_single_table_statement
				{
					pushFollow(FOLLOW_delete_single_table_statement_in_delete_statements1098);
					delete_single_table_statement110 = delete_single_table_statement();

					state._fsp--;
					if (state.failed)
						return retval;
					if (state.backtracking == 0)
						stream_delete_single_table_statement
								.add(delete_single_table_statement110.getTree());

					// AST REWRITE
					// elements: delete_single_table_statement
					// token labels:
					// rule labels: retval
					// token list labels:
					// rule list labels:
					// wildcard labels:
					if (state.backtracking == 0) {
						retval.tree = root_0;
						RewriteRuleSubtreeStream stream_retval = new RewriteRuleSubtreeStream(
								adaptor, "rule retval",
								retval != null ? retval.tree : null);

						root_0 = (Object) adaptor.nil();
						// 163:34: -> delete_single_table_statement
						{
							adaptor.addChild(root_0,
									stream_delete_single_table_statement
											.nextTree());

						}

						retval.tree = root_0;
					}
				}
					break;
				case 2:
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:164:5:
				// delete_multiple_table_statement1
				{
					pushFollow(FOLLOW_delete_multiple_table_statement1_in_delete_statements1109);
					delete_multiple_table_statement1111 = delete_multiple_table_statement1();

					state._fsp--;
					if (state.failed)
						return retval;
					if (state.backtracking == 0)
						stream_delete_multiple_table_statement1
								.add(delete_multiple_table_statement1111
										.getTree());

					// AST REWRITE
					// elements: delete_multiple_table_statement1
					// token labels:
					// rule labels: retval
					// token list labels:
					// rule list labels:
					// wildcard labels:
					if (state.backtracking == 0) {
						retval.tree = root_0;
						RewriteRuleSubtreeStream stream_retval = new RewriteRuleSubtreeStream(
								adaptor, "rule retval",
								retval != null ? retval.tree : null);

						root_0 = (Object) adaptor.nil();
						// 164:38: -> delete_multiple_table_statement1
						{
							adaptor.addChild(root_0,
									stream_delete_multiple_table_statement1
											.nextTree());

						}

						retval.tree = root_0;
					}
				}
					break;
				case 3:
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:165:5:
				// delete_multiple_table_statement2
				{
					pushFollow(FOLLOW_delete_multiple_table_statement2_in_delete_statements1120);
					delete_multiple_table_statement2112 = delete_multiple_table_statement2();

					state._fsp--;
					if (state.failed)
						return retval;
					if (state.backtracking == 0)
						stream_delete_multiple_table_statement2
								.add(delete_multiple_table_statement2112
										.getTree());

					// AST REWRITE
					// elements: delete_multiple_table_statement2
					// token labels:
					// rule labels: retval
					// token list labels:
					// rule list labels:
					// wildcard labels:
					if (state.backtracking == 0) {
						retval.tree = root_0;
						RewriteRuleSubtreeStream stream_retval = new RewriteRuleSubtreeStream(
								adaptor, "rule retval",
								retval != null ? retval.tree : null);

						root_0 = (Object) adaptor.nil();
						// 165:38: -> delete_multiple_table_statement2
						{
							adaptor.addChild(root_0,
									stream_delete_multiple_table_statement2
											.nextTree());

						}

						retval.tree = root_0;
					}
				}
					break;

				}

			}

			retval.stop = input.LT(-1);

			if (state.backtracking == 0) {

				retval.tree = (Object) adaptor.rulePostProcessing(root_0);
				adaptor.setTokenBoundaries(retval.tree, retval.start,
						retval.stop);
			}
		} catch (RecognitionException re) {
			reportError(re);
			recover(input, re);
			retval.tree = (Object) adaptor.errorNode(input, retval.start,
					input.LT(-1), re);

		} finally {
		}
		return retval;
	}

	// $ANTLR end "delete_statements"

	public static class delete_single_table_statement_return extends
			ParserRuleReturnScope {
		Object tree;

		public Object getTree() {
			return tree;
		}
	};

	// $ANTLR start "delete_single_table_statement"
	// C:\\Users\\grand\\Desktop\\another\\MySQL.g:167:1:
	// delete_single_table_statement : FROM table_spec ( partition_clause )? (
	// where_clause )? ( orderby_clause )? ( limit_clause )? -> ^( FROM ^(
	// table_spec ( partition_clause )? ) ) ( where_clause )? ( orderby_clause
	// )? ( limit_clause )? ;
	public final MySQLParser.delete_single_table_statement_return delete_single_table_statement()
			throws RecognitionException {
		MySQLParser.delete_single_table_statement_return retval = new MySQLParser.delete_single_table_statement_return();
		retval.start = input.LT(1);

		Object root_0 = null;

		Token FROM113 = null;
		MySQLParser.table_spec_return table_spec114 = null;

		MySQLParser.partition_clause_return partition_clause115 = null;

		MySQLParser.where_clause_return where_clause116 = null;

		MySQLParser.orderby_clause_return orderby_clause117 = null;

		MySQLParser.limit_clause_return limit_clause118 = null;

		Object FROM113_tree = null;
		RewriteRuleTokenStream stream_FROM = new RewriteRuleTokenStream(
				adaptor, "token FROM");
		RewriteRuleSubtreeStream stream_limit_clause = new RewriteRuleSubtreeStream(
				adaptor, "rule limit_clause");
		RewriteRuleSubtreeStream stream_where_clause = new RewriteRuleSubtreeStream(
				adaptor, "rule where_clause");
		RewriteRuleSubtreeStream stream_partition_clause = new RewriteRuleSubtreeStream(
				adaptor, "rule partition_clause");
		RewriteRuleSubtreeStream stream_table_spec = new RewriteRuleSubtreeStream(
				adaptor, "rule table_spec");
		RewriteRuleSubtreeStream stream_orderby_clause = new RewriteRuleSubtreeStream(
				adaptor, "rule orderby_clause");
		try {
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:167:30: ( FROM
			// table_spec ( partition_clause )? ( where_clause )? (
			// orderby_clause )? ( limit_clause )? -> ^( FROM ^( table_spec (
			// partition_clause )? ) ) ( where_clause )? ( orderby_clause )? (
			// limit_clause )? )
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:168:2: FROM
			// table_spec ( partition_clause )? ( where_clause )? (
			// orderby_clause )? ( limit_clause )?
			{
				FROM113 = (Token) match(input, FROM,
						FOLLOW_FROM_in_delete_single_table_statement1133);
				if (state.failed)
					return retval;
				if (state.backtracking == 0)
					stream_FROM.add(FROM113);

				pushFollow(FOLLOW_table_spec_in_delete_single_table_statement1135);
				table_spec114 = table_spec();

				state._fsp--;
				if (state.failed)
					return retval;
				if (state.backtracking == 0)
					stream_table_spec.add(table_spec114.getTree());
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:169:2: (
				// partition_clause )?
				int alt43 = 2;
				int LA43_0 = input.LA(1);

				if ((LA43_0 == PARTITION_SYM)) {
					alt43 = 1;
				}
				switch (alt43) {
				case 1:
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:169:3:
				// partition_clause
				{
					pushFollow(FOLLOW_partition_clause_in_delete_single_table_statement1139);
					partition_clause115 = partition_clause();

					state._fsp--;
					if (state.failed)
						return retval;
					if (state.backtracking == 0)
						stream_partition_clause.add(partition_clause115
								.getTree());

				}
					break;

				}

				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:170:2: (
				// where_clause )?
				int alt44 = 2;
				int LA44_0 = input.LA(1);

				if ((LA44_0 == WHERE)) {
					alt44 = 1;
				}
				switch (alt44) {
				case 1:
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:170:3:
				// where_clause
				{
					pushFollow(FOLLOW_where_clause_in_delete_single_table_statement1145);
					where_clause116 = where_clause();

					state._fsp--;
					if (state.failed)
						return retval;
					if (state.backtracking == 0)
						stream_where_clause.add(where_clause116.getTree());

				}
					break;

				}

				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:171:2: (
				// orderby_clause )?
				int alt45 = 2;
				int LA45_0 = input.LA(1);

				if ((LA45_0 == ORDER_SYM)) {
					alt45 = 1;
				}
				switch (alt45) {
				case 1:
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:171:3:
				// orderby_clause
				{
					pushFollow(FOLLOW_orderby_clause_in_delete_single_table_statement1151);
					orderby_clause117 = orderby_clause();

					state._fsp--;
					if (state.failed)
						return retval;
					if (state.backtracking == 0)
						stream_orderby_clause.add(orderby_clause117.getTree());

				}
					break;

				}

				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:172:2: (
				// limit_clause )?
				int alt46 = 2;
				int LA46_0 = input.LA(1);

				if ((LA46_0 == LIMIT)) {
					alt46 = 1;
				}
				switch (alt46) {
				case 1:
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:172:3:
				// limit_clause
				{
					pushFollow(FOLLOW_limit_clause_in_delete_single_table_statement1157);
					limit_clause118 = limit_clause();

					state._fsp--;
					if (state.failed)
						return retval;
					if (state.backtracking == 0)
						stream_limit_clause.add(limit_clause118.getTree());

				}
					break;

				}

				// AST REWRITE
				// elements: limit_clause, table_spec, partition_clause,
				// orderby_clause, FROM, where_clause
				// token labels:
				// rule labels: retval
				// token list labels:
				// rule list labels:
				// wildcard labels:
				if (state.backtracking == 0) {
					retval.tree = root_0;
					RewriteRuleSubtreeStream stream_retval = new RewriteRuleSubtreeStream(
							adaptor, "rule retval",
							retval != null ? retval.tree : null);

					root_0 = (Object) adaptor.nil();
					// 173:2: -> ^( FROM ^( table_spec ( partition_clause )? ) )
					// ( where_clause )? ( orderby_clause )? ( limit_clause )?
					{
						// C:\\Users\\grand\\Desktop\\another\\MySQL.g:173:4: ^(
						// FROM ^( table_spec ( partition_clause )? ) )
						{
							Object root_1 = (Object) adaptor.nil();
							root_1 = (Object) adaptor.becomeRoot(
									stream_FROM.nextNode(), root_1);

							// C:\\Users\\grand\\Desktop\\another\\MySQL.g:173:11:
							// ^( table_spec ( partition_clause )? )
							{
								Object root_2 = (Object) adaptor.nil();
								root_2 = (Object) adaptor.becomeRoot(
										stream_table_spec.nextNode(), root_2);

								// C:\\Users\\grand\\Desktop\\another\\MySQL.g:173:24:
								// ( partition_clause )?
								if (stream_partition_clause.hasNext()) {
									adaptor.addChild(root_2,
											stream_partition_clause.nextTree());

								}
								stream_partition_clause.reset();

								adaptor.addChild(root_1, root_2);
							}

							adaptor.addChild(root_0, root_1);
						}
						// C:\\Users\\grand\\Desktop\\another\\MySQL.g:173:46: (
						// where_clause )?
						if (stream_where_clause.hasNext()) {
							adaptor.addChild(root_0,
									stream_where_clause.nextTree());

						}
						stream_where_clause.reset();
						// C:\\Users\\grand\\Desktop\\another\\MySQL.g:173:62: (
						// orderby_clause )?
						if (stream_orderby_clause.hasNext()) {
							adaptor.addChild(root_0,
									stream_orderby_clause.nextTree());

						}
						stream_orderby_clause.reset();
						// C:\\Users\\grand\\Desktop\\another\\MySQL.g:173:80: (
						// limit_clause )?
						if (stream_limit_clause.hasNext()) {
							adaptor.addChild(root_0,
									stream_limit_clause.nextTree());

						}
						stream_limit_clause.reset();

					}

					retval.tree = root_0;
				}
			}

			retval.stop = input.LT(-1);

			if (state.backtracking == 0) {

				retval.tree = (Object) adaptor.rulePostProcessing(root_0);
				adaptor.setTokenBoundaries(retval.tree, retval.start,
						retval.stop);
			}
		} catch (RecognitionException re) {
			reportError(re);
			recover(input, re);
			retval.tree = (Object) adaptor.errorNode(input, retval.start,
					input.LT(-1), re);

		} finally {
		}
		return retval;
	}

	// $ANTLR end "delete_single_table_statement"

	public static class delete_multiple_table_statement1_return extends
			ParserRuleReturnScope {
		Object tree;

		public Object getTree() {
			return tree;
		}
	};

	// $ANTLR start "delete_multiple_table_statement1"
	// C:\\Users\\grand\\Desktop\\another\\MySQL.g:175:1:
	// delete_multiple_table_statement1 : table_spec ( ALL_FIELDS )? ( COMMA
	// table_spec ( ALL_FIELDS )? )* FROM table_references ( where_clause )? ->;
	public final MySQLParser.delete_multiple_table_statement1_return delete_multiple_table_statement1()
			throws RecognitionException {
		MySQLParser.delete_multiple_table_statement1_return retval = new MySQLParser.delete_multiple_table_statement1_return();
		retval.start = input.LT(1);

		Object root_0 = null;

		Token ALL_FIELDS120 = null;
		Token COMMA121 = null;
		Token ALL_FIELDS123 = null;
		Token FROM124 = null;
		MySQLParser.table_spec_return table_spec119 = null;

		MySQLParser.table_spec_return table_spec122 = null;

		MySQLParser.table_references_return table_references125 = null;

		MySQLParser.where_clause_return where_clause126 = null;

		Object ALL_FIELDS120_tree = null;
		Object COMMA121_tree = null;
		Object ALL_FIELDS123_tree = null;
		Object FROM124_tree = null;
		RewriteRuleTokenStream stream_ALL_FIELDS = new RewriteRuleTokenStream(
				adaptor, "token ALL_FIELDS");
		RewriteRuleTokenStream stream_FROM = new RewriteRuleTokenStream(
				adaptor, "token FROM");
		RewriteRuleTokenStream stream_COMMA = new RewriteRuleTokenStream(
				adaptor, "token COMMA");
		RewriteRuleSubtreeStream stream_table_references = new RewriteRuleSubtreeStream(
				adaptor, "rule table_references");
		RewriteRuleSubtreeStream stream_where_clause = new RewriteRuleSubtreeStream(
				adaptor, "rule where_clause");
		RewriteRuleSubtreeStream stream_table_spec = new RewriteRuleSubtreeStream(
				adaptor, "rule table_spec");
		try {
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:175:33: ( table_spec
			// ( ALL_FIELDS )? ( COMMA table_spec ( ALL_FIELDS )? )* FROM
			// table_references ( where_clause )? ->)
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:176:2: table_spec (
			// ALL_FIELDS )? ( COMMA table_spec ( ALL_FIELDS )? )* FROM
			// table_references ( where_clause )?
			{
				pushFollow(FOLLOW_table_spec_in_delete_multiple_table_statement11197);
				table_spec119 = table_spec();

				state._fsp--;
				if (state.failed)
					return retval;
				if (state.backtracking == 0)
					stream_table_spec.add(table_spec119.getTree());
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:176:13: (
				// ALL_FIELDS )?
				int alt47 = 2;
				int LA47_0 = input.LA(1);

				if ((LA47_0 == ALL_FIELDS)) {
					alt47 = 1;
				}
				switch (alt47) {
				case 1:
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:176:14:
				// ALL_FIELDS
				{
					ALL_FIELDS120 = (Token) match(input, ALL_FIELDS,
							FOLLOW_ALL_FIELDS_in_delete_multiple_table_statement11200);
					if (state.failed)
						return retval;
					if (state.backtracking == 0)
						stream_ALL_FIELDS.add(ALL_FIELDS120);

				}
					break;

				}

				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:176:27: ( COMMA
				// table_spec ( ALL_FIELDS )? )*
				loop49: do {
					int alt49 = 2;
					int LA49_0 = input.LA(1);

					if ((LA49_0 == COMMA)) {
						alt49 = 1;
					}

					switch (alt49) {
					case 1:
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:176:28: COMMA
					// table_spec ( ALL_FIELDS )?
					{
						COMMA121 = (Token) match(input, COMMA,
								FOLLOW_COMMA_in_delete_multiple_table_statement11205);
						if (state.failed)
							return retval;
						if (state.backtracking == 0)
							stream_COMMA.add(COMMA121);

						pushFollow(FOLLOW_table_spec_in_delete_multiple_table_statement11207);
						table_spec122 = table_spec();

						state._fsp--;
						if (state.failed)
							return retval;
						if (state.backtracking == 0)
							stream_table_spec.add(table_spec122.getTree());
						// C:\\Users\\grand\\Desktop\\another\\MySQL.g:176:45: (
						// ALL_FIELDS )?
						int alt48 = 2;
						int LA48_0 = input.LA(1);

						if ((LA48_0 == ALL_FIELDS)) {
							alt48 = 1;
						}
						switch (alt48) {
						case 1:
						// C:\\Users\\grand\\Desktop\\another\\MySQL.g:176:46:
						// ALL_FIELDS
						{
							ALL_FIELDS123 = (Token) match(input, ALL_FIELDS,
									FOLLOW_ALL_FIELDS_in_delete_multiple_table_statement11210);
							if (state.failed)
								return retval;
							if (state.backtracking == 0)
								stream_ALL_FIELDS.add(ALL_FIELDS123);

						}
							break;

						}

					}
						break;

					default:
						break loop49;
					}
				} while (true);

				FROM124 = (Token) match(input, FROM,
						FOLLOW_FROM_in_delete_multiple_table_statement11217);
				if (state.failed)
					return retval;
				if (state.backtracking == 0)
					stream_FROM.add(FROM124);

				pushFollow(FOLLOW_table_references_in_delete_multiple_table_statement11219);
				table_references125 = table_references();

				state._fsp--;
				if (state.failed)
					return retval;
				if (state.backtracking == 0)
					stream_table_references.add(table_references125.getTree());
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:178:2: (
				// where_clause )?
				int alt50 = 2;
				int LA50_0 = input.LA(1);

				if ((LA50_0 == WHERE)) {
					alt50 = 1;
				}
				switch (alt50) {
				case 1:
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:178:3:
				// where_clause
				{
					pushFollow(FOLLOW_where_clause_in_delete_multiple_table_statement11223);
					where_clause126 = where_clause();

					state._fsp--;
					if (state.failed)
						return retval;
					if (state.backtracking == 0)
						stream_where_clause.add(where_clause126.getTree());

				}
					break;

				}

				// AST REWRITE
				// elements:
				// token labels:
				// rule labels: retval
				// token list labels:
				// rule list labels:
				// wildcard labels:
				if (state.backtracking == 0) {
					retval.tree = root_0;
					RewriteRuleSubtreeStream stream_retval = new RewriteRuleSubtreeStream(
							adaptor, "rule retval",
							retval != null ? retval.tree : null);

					root_0 = (Object) adaptor.nil();
					// 178:17: ->
					{
						root_0 = null;
					}

					retval.tree = root_0;
				}
			}

			retval.stop = input.LT(-1);

			if (state.backtracking == 0) {

				retval.tree = (Object) adaptor.rulePostProcessing(root_0);
				adaptor.setTokenBoundaries(retval.tree, retval.start,
						retval.stop);
			}
		} catch (RecognitionException re) {
			reportError(re);
			recover(input, re);
			retval.tree = (Object) adaptor.errorNode(input, retval.start,
					input.LT(-1), re);

		} finally {
		}
		return retval;
	}

	// $ANTLR end "delete_multiple_table_statement1"

	public static class delete_multiple_table_statement2_return extends
			ParserRuleReturnScope {
		Object tree;

		public Object getTree() {
			return tree;
		}
	};

	// $ANTLR start "delete_multiple_table_statement2"
	// C:\\Users\\grand\\Desktop\\another\\MySQL.g:180:1:
	// delete_multiple_table_statement2 : FROM table_spec ( ALL_FIELDS )? (
	// COMMA table_spec ( ALL_FIELDS )? )* USING_SYM table_references (
	// where_clause )? ->;
	public final MySQLParser.delete_multiple_table_statement2_return delete_multiple_table_statement2()
			throws RecognitionException {
		MySQLParser.delete_multiple_table_statement2_return retval = new MySQLParser.delete_multiple_table_statement2_return();
		retval.start = input.LT(1);

		Object root_0 = null;

		Token FROM127 = null;
		Token ALL_FIELDS129 = null;
		Token COMMA130 = null;
		Token ALL_FIELDS132 = null;
		Token USING_SYM133 = null;
		MySQLParser.table_spec_return table_spec128 = null;

		MySQLParser.table_spec_return table_spec131 = null;

		MySQLParser.table_references_return table_references134 = null;

		MySQLParser.where_clause_return where_clause135 = null;

		Object FROM127_tree = null;
		Object ALL_FIELDS129_tree = null;
		Object COMMA130_tree = null;
		Object ALL_FIELDS132_tree = null;
		Object USING_SYM133_tree = null;
		RewriteRuleTokenStream stream_ALL_FIELDS = new RewriteRuleTokenStream(
				adaptor, "token ALL_FIELDS");
		RewriteRuleTokenStream stream_FROM = new RewriteRuleTokenStream(
				adaptor, "token FROM");
		RewriteRuleTokenStream stream_USING_SYM = new RewriteRuleTokenStream(
				adaptor, "token USING_SYM");
		RewriteRuleTokenStream stream_COMMA = new RewriteRuleTokenStream(
				adaptor, "token COMMA");
		RewriteRuleSubtreeStream stream_table_references = new RewriteRuleSubtreeStream(
				adaptor, "rule table_references");
		RewriteRuleSubtreeStream stream_where_clause = new RewriteRuleSubtreeStream(
				adaptor, "rule where_clause");
		RewriteRuleSubtreeStream stream_table_spec = new RewriteRuleSubtreeStream(
				adaptor, "rule table_spec");
		try {
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:180:33: ( FROM
			// table_spec ( ALL_FIELDS )? ( COMMA table_spec ( ALL_FIELDS )? )*
			// USING_SYM table_references ( where_clause )? ->)
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:181:2: FROM
			// table_spec ( ALL_FIELDS )? ( COMMA table_spec ( ALL_FIELDS )? )*
			// USING_SYM table_references ( where_clause )?
			{
				FROM127 = (Token) match(input, FROM,
						FOLLOW_FROM_in_delete_multiple_table_statement21235);
				if (state.failed)
					return retval;
				if (state.backtracking == 0)
					stream_FROM.add(FROM127);

				pushFollow(FOLLOW_table_spec_in_delete_multiple_table_statement21237);
				table_spec128 = table_spec();

				state._fsp--;
				if (state.failed)
					return retval;
				if (state.backtracking == 0)
					stream_table_spec.add(table_spec128.getTree());
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:181:18: (
				// ALL_FIELDS )?
				int alt51 = 2;
				int LA51_0 = input.LA(1);

				if ((LA51_0 == ALL_FIELDS)) {
					alt51 = 1;
				}
				switch (alt51) {
				case 1:
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:181:19:
				// ALL_FIELDS
				{
					ALL_FIELDS129 = (Token) match(input, ALL_FIELDS,
							FOLLOW_ALL_FIELDS_in_delete_multiple_table_statement21240);
					if (state.failed)
						return retval;
					if (state.backtracking == 0)
						stream_ALL_FIELDS.add(ALL_FIELDS129);

				}
					break;

				}

				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:181:32: ( COMMA
				// table_spec ( ALL_FIELDS )? )*
				loop53: do {
					int alt53 = 2;
					int LA53_0 = input.LA(1);

					if ((LA53_0 == COMMA)) {
						alt53 = 1;
					}

					switch (alt53) {
					case 1:
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:181:33: COMMA
					// table_spec ( ALL_FIELDS )?
					{
						COMMA130 = (Token) match(input, COMMA,
								FOLLOW_COMMA_in_delete_multiple_table_statement21245);
						if (state.failed)
							return retval;
						if (state.backtracking == 0)
							stream_COMMA.add(COMMA130);

						pushFollow(FOLLOW_table_spec_in_delete_multiple_table_statement21247);
						table_spec131 = table_spec();

						state._fsp--;
						if (state.failed)
							return retval;
						if (state.backtracking == 0)
							stream_table_spec.add(table_spec131.getTree());
						// C:\\Users\\grand\\Desktop\\another\\MySQL.g:181:50: (
						// ALL_FIELDS )?
						int alt52 = 2;
						int LA52_0 = input.LA(1);

						if ((LA52_0 == ALL_FIELDS)) {
							alt52 = 1;
						}
						switch (alt52) {
						case 1:
						// C:\\Users\\grand\\Desktop\\another\\MySQL.g:181:51:
						// ALL_FIELDS
						{
							ALL_FIELDS132 = (Token) match(input, ALL_FIELDS,
									FOLLOW_ALL_FIELDS_in_delete_multiple_table_statement21250);
							if (state.failed)
								return retval;
							if (state.backtracking == 0)
								stream_ALL_FIELDS.add(ALL_FIELDS132);

						}
							break;

						}

					}
						break;

					default:
						break loop53;
					}
				} while (true);

				USING_SYM133 = (Token) match(input, USING_SYM,
						FOLLOW_USING_SYM_in_delete_multiple_table_statement21257);
				if (state.failed)
					return retval;
				if (state.backtracking == 0)
					stream_USING_SYM.add(USING_SYM133);

				pushFollow(FOLLOW_table_references_in_delete_multiple_table_statement21259);
				table_references134 = table_references();

				state._fsp--;
				if (state.failed)
					return retval;
				if (state.backtracking == 0)
					stream_table_references.add(table_references134.getTree());
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:183:2: (
				// where_clause )?
				int alt54 = 2;
				int LA54_0 = input.LA(1);

				if ((LA54_0 == WHERE)) {
					alt54 = 1;
				}
				switch (alt54) {
				case 1:
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:183:3:
				// where_clause
				{
					pushFollow(FOLLOW_where_clause_in_delete_multiple_table_statement21263);
					where_clause135 = where_clause();

					state._fsp--;
					if (state.failed)
						return retval;
					if (state.backtracking == 0)
						stream_where_clause.add(where_clause135.getTree());

				}
					break;

				}

				// AST REWRITE
				// elements:
				// token labels:
				// rule labels: retval
				// token list labels:
				// rule list labels:
				// wildcard labels:
				if (state.backtracking == 0) {
					retval.tree = root_0;
					RewriteRuleSubtreeStream stream_retval = new RewriteRuleSubtreeStream(
							adaptor, "rule retval",
							retval != null ? retval.tree : null);

					root_0 = (Object) adaptor.nil();
					// 183:17: ->
					{
						root_0 = null;
					}

					retval.tree = root_0;
				}
			}

			retval.stop = input.LT(-1);

			if (state.backtracking == 0) {

				retval.tree = (Object) adaptor.rulePostProcessing(root_0);
				adaptor.setTokenBoundaries(retval.tree, retval.start,
						retval.stop);
			}
		} catch (RecognitionException re) {
			reportError(re);
			recover(input, re);
			retval.tree = (Object) adaptor.errorNode(input, retval.start,
					input.LT(-1), re);

		} finally {
		}
		return retval;
	}

	// $ANTLR end "delete_multiple_table_statement2"

	public static class insert_statements_return extends ParserRuleReturnScope {
		Object tree;

		public Object getTree() {
			return tree;
		}
	};

	// $ANTLR start "insert_statements"
	// C:\\Users\\grand\\Desktop\\another\\MySQL.g:187:1: insert_statements : (
	// insert_statement1 -> insert_statement1 | insert_statement2 ->
	// insert_statement2 | insert_statement3 -> insert_statement3 );
	public final MySQLParser.insert_statements_return insert_statements()
			throws RecognitionException {
		MySQLParser.insert_statements_return retval = new MySQLParser.insert_statements_return();
		retval.start = input.LT(1);

		Object root_0 = null;

		MySQLParser.insert_statement1_return insert_statement1136 = null;

		MySQLParser.insert_statement2_return insert_statement2137 = null;

		MySQLParser.insert_statement3_return insert_statement3138 = null;

		RewriteRuleSubtreeStream stream_insert_statement1 = new RewriteRuleSubtreeStream(
				adaptor, "rule insert_statement1");
		RewriteRuleSubtreeStream stream_insert_statement2 = new RewriteRuleSubtreeStream(
				adaptor, "rule insert_statement2");
		RewriteRuleSubtreeStream stream_insert_statement3 = new RewriteRuleSubtreeStream(
				adaptor, "rule insert_statement3");
		try {
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:187:19: (
			// insert_statement1 -> insert_statement1 | insert_statement2 ->
			// insert_statement2 | insert_statement3 -> insert_statement3 )
			int alt55 = 3;
			alt55 = dfa55.predict(input);
			switch (alt55) {
			case 1:
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:188:2:
			// insert_statement1
			{
				pushFollow(FOLLOW_insert_statement1_in_insert_statements1278);
				insert_statement1136 = insert_statement1();

				state._fsp--;
				if (state.failed)
					return retval;
				if (state.backtracking == 0)
					stream_insert_statement1
							.add(insert_statement1136.getTree());

				// AST REWRITE
				// elements: insert_statement1
				// token labels:
				// rule labels: retval
				// token list labels:
				// rule list labels:
				// wildcard labels:
				if (state.backtracking == 0) {
					retval.tree = root_0;
					RewriteRuleSubtreeStream stream_retval = new RewriteRuleSubtreeStream(
							adaptor, "rule retval",
							retval != null ? retval.tree : null);

					root_0 = (Object) adaptor.nil();
					// 188:20: -> insert_statement1
					{
						adaptor.addChild(root_0,
								stream_insert_statement1.nextTree());

					}

					retval.tree = root_0;
				}
			}
				break;
			case 2:
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:189:4:
			// insert_statement2
			{
				pushFollow(FOLLOW_insert_statement2_in_insert_statements1286);
				insert_statement2137 = insert_statement2();

				state._fsp--;
				if (state.failed)
					return retval;
				if (state.backtracking == 0)
					stream_insert_statement2
							.add(insert_statement2137.getTree());

				// AST REWRITE
				// elements: insert_statement2
				// token labels:
				// rule labels: retval
				// token list labels:
				// rule list labels:
				// wildcard labels:
				if (state.backtracking == 0) {
					retval.tree = root_0;
					RewriteRuleSubtreeStream stream_retval = new RewriteRuleSubtreeStream(
							adaptor, "rule retval",
							retval != null ? retval.tree : null);

					root_0 = (Object) adaptor.nil();
					// 189:22: -> insert_statement2
					{
						adaptor.addChild(root_0,
								stream_insert_statement2.nextTree());

					}

					retval.tree = root_0;
				}
			}
				break;
			case 3:
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:190:4:
			// insert_statement3
			{
				pushFollow(FOLLOW_insert_statement3_in_insert_statements1294);
				insert_statement3138 = insert_statement3();

				state._fsp--;
				if (state.failed)
					return retval;
				if (state.backtracking == 0)
					stream_insert_statement3
							.add(insert_statement3138.getTree());

				// AST REWRITE
				// elements: insert_statement3
				// token labels:
				// rule labels: retval
				// token list labels:
				// rule list labels:
				// wildcard labels:
				if (state.backtracking == 0) {
					retval.tree = root_0;
					RewriteRuleSubtreeStream stream_retval = new RewriteRuleSubtreeStream(
							adaptor, "rule retval",
							retval != null ? retval.tree : null);

					root_0 = (Object) adaptor.nil();
					// 190:22: -> insert_statement3
					{
						adaptor.addChild(root_0,
								stream_insert_statement3.nextTree());

					}

					retval.tree = root_0;
				}
			}
				break;

			}
			retval.stop = input.LT(-1);

			if (state.backtracking == 0) {

				retval.tree = (Object) adaptor.rulePostProcessing(root_0);
				adaptor.setTokenBoundaries(retval.tree, retval.start,
						retval.stop);
			}
		} catch (RecognitionException re) {
			reportError(re);
			recover(input, re);
			retval.tree = (Object) adaptor.errorNode(input, retval.start,
					input.LT(-1), re);

		} finally {
		}
		return retval;
	}

	// $ANTLR end "insert_statements"

	public static class insert_header_return extends ParserRuleReturnScope {
		Object tree;

		public Object getTree() {
			return tree;
		}
	};

	// $ANTLR start "insert_header"
	// C:\\Users\\grand\\Desktop\\another\\MySQL.g:193:1: insert_header : INSERT
	// ( LOW_PRIORITY | HIGH_PRIORITY )? ( IGNORE_SYM )? ( INTO )? table_spec (
	// partition_clause )? -> ^( INSERT ^( table_spec ( partition_clause )? ) )
	// ;
	public final MySQLParser.insert_header_return insert_header()
			throws RecognitionException {
		MySQLParser.insert_header_return retval = new MySQLParser.insert_header_return();
		retval.start = input.LT(1);

		Object root_0 = null;

		Token INSERT139 = null;
		Token LOW_PRIORITY140 = null;
		Token HIGH_PRIORITY141 = null;
		Token IGNORE_SYM142 = null;
		Token INTO143 = null;
		MySQLParser.table_spec_return table_spec144 = null;

		MySQLParser.partition_clause_return partition_clause145 = null;

		Object INSERT139_tree = null;
		Object LOW_PRIORITY140_tree = null;
		Object HIGH_PRIORITY141_tree = null;
		Object IGNORE_SYM142_tree = null;
		Object INTO143_tree = null;
		RewriteRuleTokenStream stream_INSERT = new RewriteRuleTokenStream(
				adaptor, "token INSERT");
		RewriteRuleTokenStream stream_LOW_PRIORITY = new RewriteRuleTokenStream(
				adaptor, "token LOW_PRIORITY");
		RewriteRuleTokenStream stream_INTO = new RewriteRuleTokenStream(
				adaptor, "token INTO");
		RewriteRuleTokenStream stream_HIGH_PRIORITY = new RewriteRuleTokenStream(
				adaptor, "token HIGH_PRIORITY");
		RewriteRuleTokenStream stream_IGNORE_SYM = new RewriteRuleTokenStream(
				adaptor, "token IGNORE_SYM");
		RewriteRuleSubtreeStream stream_partition_clause = new RewriteRuleSubtreeStream(
				adaptor, "rule partition_clause");
		RewriteRuleSubtreeStream stream_table_spec = new RewriteRuleSubtreeStream(
				adaptor, "rule table_spec");
		try {
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:193:14: ( INSERT (
			// LOW_PRIORITY | HIGH_PRIORITY )? ( IGNORE_SYM )? ( INTO )?
			// table_spec ( partition_clause )? -> ^( INSERT ^( table_spec (
			// partition_clause )? ) ) )
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:194:2: INSERT (
			// LOW_PRIORITY | HIGH_PRIORITY )? ( IGNORE_SYM )? ( INTO )?
			// table_spec ( partition_clause )?
			{
				INSERT139 = (Token) match(input, INSERT,
						FOLLOW_INSERT_in_insert_header1306);
				if (state.failed)
					return retval;
				if (state.backtracking == 0)
					stream_INSERT.add(INSERT139);

				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:194:9: (
				// LOW_PRIORITY | HIGH_PRIORITY )?
				int alt56 = 3;
				int LA56_0 = input.LA(1);

				if ((LA56_0 == LOW_PRIORITY)) {
					alt56 = 1;
				} else if ((LA56_0 == HIGH_PRIORITY)) {
					alt56 = 2;
				}
				switch (alt56) {
				case 1:
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:194:10:
				// LOW_PRIORITY
				{
					LOW_PRIORITY140 = (Token) match(input, LOW_PRIORITY,
							FOLLOW_LOW_PRIORITY_in_insert_header1309);
					if (state.failed)
						return retval;
					if (state.backtracking == 0)
						stream_LOW_PRIORITY.add(LOW_PRIORITY140);

				}
					break;
				case 2:
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:194:25:
				// HIGH_PRIORITY
				{
					HIGH_PRIORITY141 = (Token) match(input, HIGH_PRIORITY,
							FOLLOW_HIGH_PRIORITY_in_insert_header1313);
					if (state.failed)
						return retval;
					if (state.backtracking == 0)
						stream_HIGH_PRIORITY.add(HIGH_PRIORITY141);

				}
					break;

				}

				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:194:41: (
				// IGNORE_SYM )?
				int alt57 = 2;
				int LA57_0 = input.LA(1);

				if ((LA57_0 == IGNORE_SYM)) {
					alt57 = 1;
				}
				switch (alt57) {
				case 1:
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:194:42:
				// IGNORE_SYM
				{
					IGNORE_SYM142 = (Token) match(input, IGNORE_SYM,
							FOLLOW_IGNORE_SYM_in_insert_header1318);
					if (state.failed)
						return retval;
					if (state.backtracking == 0)
						stream_IGNORE_SYM.add(IGNORE_SYM142);

				}
					break;

				}

				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:195:2: ( INTO )?
				int alt58 = 2;
				int LA58_0 = input.LA(1);

				if ((LA58_0 == INTO)) {
					alt58 = 1;
				}
				switch (alt58) {
				case 1:
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:195:3: INTO
				{
					INTO143 = (Token) match(input, INTO,
							FOLLOW_INTO_in_insert_header1324);
					if (state.failed)
						return retval;
					if (state.backtracking == 0)
						stream_INTO.add(INTO143);

				}
					break;

				}

				pushFollow(FOLLOW_table_spec_in_insert_header1328);
				table_spec144 = table_spec();

				state._fsp--;
				if (state.failed)
					return retval;
				if (state.backtracking == 0)
					stream_table_spec.add(table_spec144.getTree());
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:196:2: (
				// partition_clause )?
				int alt59 = 2;
				int LA59_0 = input.LA(1);

				if ((LA59_0 == PARTITION_SYM)) {
					alt59 = 1;
				}
				switch (alt59) {
				case 1:
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:196:3:
				// partition_clause
				{
					pushFollow(FOLLOW_partition_clause_in_insert_header1333);
					partition_clause145 = partition_clause();

					state._fsp--;
					if (state.failed)
						return retval;
					if (state.backtracking == 0)
						stream_partition_clause.add(partition_clause145
								.getTree());

				}
					break;

				}

				// AST REWRITE
				// elements: INSERT, partition_clause, table_spec
				// token labels:
				// rule labels: retval
				// token list labels:
				// rule list labels:
				// wildcard labels:
				if (state.backtracking == 0) {
					retval.tree = root_0;
					RewriteRuleSubtreeStream stream_retval = new RewriteRuleSubtreeStream(
							adaptor, "rule retval",
							retval != null ? retval.tree : null);

					root_0 = (Object) adaptor.nil();
					// 196:22: -> ^( INSERT ^( table_spec ( partition_clause )?
					// ) )
					{
						// C:\\Users\\grand\\Desktop\\another\\MySQL.g:196:24:
						// ^( INSERT ^( table_spec ( partition_clause )? ) )
						{
							Object root_1 = (Object) adaptor.nil();
							root_1 = (Object) adaptor.becomeRoot(
									stream_INSERT.nextNode(), root_1);

							// C:\\Users\\grand\\Desktop\\another\\MySQL.g:196:33:
							// ^( table_spec ( partition_clause )? )
							{
								Object root_2 = (Object) adaptor.nil();
								root_2 = (Object) adaptor.becomeRoot(
										stream_table_spec.nextNode(), root_2);

								// C:\\Users\\grand\\Desktop\\another\\MySQL.g:196:46:
								// ( partition_clause )?
								if (stream_partition_clause.hasNext()) {
									adaptor.addChild(root_2,
											stream_partition_clause.nextTree());

								}
								stream_partition_clause.reset();

								adaptor.addChild(root_1, root_2);
							}

							adaptor.addChild(root_0, root_1);
						}

					}

					retval.tree = root_0;
				}
			}

			retval.stop = input.LT(-1);

			if (state.backtracking == 0) {

				retval.tree = (Object) adaptor.rulePostProcessing(root_0);
				adaptor.setTokenBoundaries(retval.tree, retval.start,
						retval.stop);
			}
		} catch (RecognitionException re) {
			reportError(re);
			recover(input, re);
			retval.tree = (Object) adaptor.errorNode(input, retval.start,
					input.LT(-1), re);

		} finally {
		}
		return retval;
	}

	// $ANTLR end "insert_header"

	public static class insert_subfix_return extends ParserRuleReturnScope {
		Object tree;

		public Object getTree() {
			return tree;
		}
	};

	// $ANTLR start "insert_subfix"
	// C:\\Users\\grand\\Desktop\\another\\MySQL.g:199:1: insert_subfix : ON
	// DUPLICATE_SYM KEY_SYM UPDATE column_spec EQ_SYM expression ( COMMA
	// column_spec EQ_SYM expression )* ;
	public final MySQLParser.insert_subfix_return insert_subfix()
			throws RecognitionException {
		MySQLParser.insert_subfix_return retval = new MySQLParser.insert_subfix_return();
		retval.start = input.LT(1);

		Object root_0 = null;

		Token ON146 = null;
		Token DUPLICATE_SYM147 = null;
		Token KEY_SYM148 = null;
		Token UPDATE149 = null;
		Token EQ_SYM151 = null;
		Token COMMA153 = null;
		Token EQ_SYM155 = null;
		MySQLParser.column_spec_return column_spec150 = null;

		MySQLParser.expression_return expression152 = null;

		MySQLParser.column_spec_return column_spec154 = null;

		MySQLParser.expression_return expression156 = null;

		Object ON146_tree = null;
		Object DUPLICATE_SYM147_tree = null;
		Object KEY_SYM148_tree = null;
		Object UPDATE149_tree = null;
		Object EQ_SYM151_tree = null;
		Object COMMA153_tree = null;
		Object EQ_SYM155_tree = null;

		try {
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:199:14: ( ON
			// DUPLICATE_SYM KEY_SYM UPDATE column_spec EQ_SYM expression (
			// COMMA column_spec EQ_SYM expression )* )
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:200:2: ON
			// DUPLICATE_SYM KEY_SYM UPDATE column_spec EQ_SYM expression (
			// COMMA column_spec EQ_SYM expression )*
			{
				root_0 = (Object) adaptor.nil();

				ON146 = (Token) match(input, ON, FOLLOW_ON_in_insert_subfix1359);
				if (state.failed)
					return retval;
				if (state.backtracking == 0) {
					ON146_tree = (Object) adaptor.create(ON146);
					adaptor.addChild(root_0, ON146_tree);
				}
				DUPLICATE_SYM147 = (Token) match(input, DUPLICATE_SYM,
						FOLLOW_DUPLICATE_SYM_in_insert_subfix1361);
				if (state.failed)
					return retval;
				if (state.backtracking == 0) {
					DUPLICATE_SYM147_tree = (Object) adaptor
							.create(DUPLICATE_SYM147);
					adaptor.addChild(root_0, DUPLICATE_SYM147_tree);
				}
				KEY_SYM148 = (Token) match(input, KEY_SYM,
						FOLLOW_KEY_SYM_in_insert_subfix1363);
				if (state.failed)
					return retval;
				if (state.backtracking == 0) {
					KEY_SYM148_tree = (Object) adaptor.create(KEY_SYM148);
					adaptor.addChild(root_0, KEY_SYM148_tree);
				}
				UPDATE149 = (Token) match(input, UPDATE,
						FOLLOW_UPDATE_in_insert_subfix1365);
				if (state.failed)
					return retval;
				if (state.backtracking == 0) {
					UPDATE149_tree = (Object) adaptor.create(UPDATE149);
					adaptor.addChild(root_0, UPDATE149_tree);
				}
				pushFollow(FOLLOW_column_spec_in_insert_subfix1367);
				column_spec150 = column_spec();

				state._fsp--;
				if (state.failed)
					return retval;
				if (state.backtracking == 0)
					adaptor.addChild(root_0, column_spec150.getTree());
				EQ_SYM151 = (Token) match(input, EQ_SYM,
						FOLLOW_EQ_SYM_in_insert_subfix1369);
				if (state.failed)
					return retval;
				if (state.backtracking == 0) {
					EQ_SYM151_tree = (Object) adaptor.create(EQ_SYM151);
					adaptor.addChild(root_0, EQ_SYM151_tree);
				}
				pushFollow(FOLLOW_expression_in_insert_subfix1371);
				expression152 = expression();

				state._fsp--;
				if (state.failed)
					return retval;
				if (state.backtracking == 0)
					adaptor.addChild(root_0, expression152.getTree());
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:200:64: ( COMMA
				// column_spec EQ_SYM expression )*
				loop60: do {
					int alt60 = 2;
					int LA60_0 = input.LA(1);

					if ((LA60_0 == COMMA)) {
						alt60 = 1;
					}

					switch (alt60) {
					case 1:
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:200:65: COMMA
					// column_spec EQ_SYM expression
					{
						COMMA153 = (Token) match(input, COMMA,
								FOLLOW_COMMA_in_insert_subfix1374);
						if (state.failed)
							return retval;
						if (state.backtracking == 0) {
							COMMA153_tree = (Object) adaptor.create(COMMA153);
							adaptor.addChild(root_0, COMMA153_tree);
						}
						pushFollow(FOLLOW_column_spec_in_insert_subfix1376);
						column_spec154 = column_spec();

						state._fsp--;
						if (state.failed)
							return retval;
						if (state.backtracking == 0)
							adaptor.addChild(root_0, column_spec154.getTree());
						EQ_SYM155 = (Token) match(input, EQ_SYM,
								FOLLOW_EQ_SYM_in_insert_subfix1378);
						if (state.failed)
							return retval;
						if (state.backtracking == 0) {
							EQ_SYM155_tree = (Object) adaptor.create(EQ_SYM155);
							adaptor.addChild(root_0, EQ_SYM155_tree);
						}
						pushFollow(FOLLOW_expression_in_insert_subfix1380);
						expression156 = expression();

						state._fsp--;
						if (state.failed)
							return retval;
						if (state.backtracking == 0)
							adaptor.addChild(root_0, expression156.getTree());

					}
						break;

					default:
						break loop60;
					}
				} while (true);

			}

			retval.stop = input.LT(-1);

			if (state.backtracking == 0) {

				retval.tree = (Object) adaptor.rulePostProcessing(root_0);
				adaptor.setTokenBoundaries(retval.tree, retval.start,
						retval.stop);
			}
		} catch (RecognitionException re) {
			reportError(re);
			recover(input, re);
			retval.tree = (Object) adaptor.errorNode(input, retval.start,
					input.LT(-1), re);

		} finally {
		}
		return retval;
	}

	// $ANTLR end "insert_subfix"

	public static class insert_statement1_return extends ParserRuleReturnScope {
		Object tree;

		public Object getTree() {
			return tree;
		}
	};

	// $ANTLR start "insert_statement1"
	// C:\\Users\\grand\\Desktop\\another\\MySQL.g:203:1: insert_statement1 :
	// insert_header ( column_list )? value_list_clause ( insert_subfix )? ->
	// insert_header ( column_list )? value_list_clause ;
	public final MySQLParser.insert_statement1_return insert_statement1()
			throws RecognitionException {
		MySQLParser.insert_statement1_return retval = new MySQLParser.insert_statement1_return();
		retval.start = input.LT(1);

		Object root_0 = null;

		MySQLParser.insert_header_return insert_header157 = null;

		MySQLParser.column_list_return column_list158 = null;

		MySQLParser.value_list_clause_return value_list_clause159 = null;

		MySQLParser.insert_subfix_return insert_subfix160 = null;

		RewriteRuleSubtreeStream stream_insert_subfix = new RewriteRuleSubtreeStream(
				adaptor, "rule insert_subfix");
		RewriteRuleSubtreeStream stream_column_list = new RewriteRuleSubtreeStream(
				adaptor, "rule column_list");
		RewriteRuleSubtreeStream stream_value_list_clause = new RewriteRuleSubtreeStream(
				adaptor, "rule value_list_clause");
		RewriteRuleSubtreeStream stream_insert_header = new RewriteRuleSubtreeStream(
				adaptor, "rule insert_header");
		try {
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:203:18: (
			// insert_header ( column_list )? value_list_clause ( insert_subfix
			// )? -> insert_header ( column_list )? value_list_clause )
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:204:2: insert_header
			// ( column_list )? value_list_clause ( insert_subfix )?
			{
				pushFollow(FOLLOW_insert_header_in_insert_statement11391);
				insert_header157 = insert_header();

				state._fsp--;
				if (state.failed)
					return retval;
				if (state.backtracking == 0)
					stream_insert_header.add(insert_header157.getTree());
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:205:2: (
				// column_list )?
				int alt61 = 2;
				int LA61_0 = input.LA(1);

				if ((LA61_0 == LPAREN)) {
					alt61 = 1;
				}
				switch (alt61) {
				case 1:
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:205:3:
				// column_list
				{
					pushFollow(FOLLOW_column_list_in_insert_statement11395);
					column_list158 = column_list();

					state._fsp--;
					if (state.failed)
						return retval;
					if (state.backtracking == 0)
						stream_column_list.add(column_list158.getTree());

				}
					break;

				}

				pushFollow(FOLLOW_value_list_clause_in_insert_statement11401);
				value_list_clause159 = value_list_clause();

				state._fsp--;
				if (state.failed)
					return retval;
				if (state.backtracking == 0)
					stream_value_list_clause
							.add(value_list_clause159.getTree());
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:207:2: (
				// insert_subfix )?
				int alt62 = 2;
				int LA62_0 = input.LA(1);

				if ((LA62_0 == ON)) {
					alt62 = 1;
				}
				switch (alt62) {
				case 1:
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:207:4:
				// insert_subfix
				{
					pushFollow(FOLLOW_insert_subfix_in_insert_statement11406);
					insert_subfix160 = insert_subfix();

					state._fsp--;
					if (state.failed)
						return retval;
					if (state.backtracking == 0)
						stream_insert_subfix.add(insert_subfix160.getTree());

				}
					break;

				}

				// AST REWRITE
				// elements: value_list_clause, column_list, insert_header
				// token labels:
				// rule labels: retval
				// token list labels:
				// rule list labels:
				// wildcard labels:
				if (state.backtracking == 0) {
					retval.tree = root_0;
					RewriteRuleSubtreeStream stream_retval = new RewriteRuleSubtreeStream(
							adaptor, "rule retval",
							retval != null ? retval.tree : null);

					root_0 = (Object) adaptor.nil();
					// 207:21: -> insert_header ( column_list )?
					// value_list_clause
					{
						adaptor.addChild(root_0,
								stream_insert_header.nextTree());
						// C:\\Users\\grand\\Desktop\\another\\MySQL.g:207:38: (
						// column_list )?
						if (stream_column_list.hasNext()) {
							adaptor.addChild(root_0,
									stream_column_list.nextTree());

						}
						stream_column_list.reset();
						adaptor.addChild(root_0,
								stream_value_list_clause.nextTree());

					}

					retval.tree = root_0;
				}
			}

			retval.stop = input.LT(-1);

			if (state.backtracking == 0) {

				retval.tree = (Object) adaptor.rulePostProcessing(root_0);
				adaptor.setTokenBoundaries(retval.tree, retval.start,
						retval.stop);
			}
		} catch (RecognitionException re) {
			reportError(re);
			recover(input, re);
			retval.tree = (Object) adaptor.errorNode(input, retval.start,
					input.LT(-1), re);

		} finally {
		}
		return retval;
	}

	// $ANTLR end "insert_statement1"

	public static class value_list_clause_return extends ParserRuleReturnScope {
		Object tree;

		public Object getTree() {
			return tree;
		}
	};

	// $ANTLR start "value_list_clause"
	// C:\\Users\\grand\\Desktop\\another\\MySQL.g:210:1: value_list_clause : (
	// VALUES | VALUE_SYM ) column_value_list ( COMMA column_value_list )* -> ^(
	// VALUES ( column_value_list )+ ) ;
	public final MySQLParser.value_list_clause_return value_list_clause()
			throws RecognitionException {
		MySQLParser.value_list_clause_return retval = new MySQLParser.value_list_clause_return();
		retval.start = input.LT(1);

		Object root_0 = null;

		Token VALUES161 = null;
		Token VALUE_SYM162 = null;
		Token COMMA164 = null;
		MySQLParser.column_value_list_return column_value_list163 = null;

		MySQLParser.column_value_list_return column_value_list165 = null;

		Object VALUES161_tree = null;
		Object VALUE_SYM162_tree = null;
		Object COMMA164_tree = null;
		RewriteRuleTokenStream stream_VALUE_SYM = new RewriteRuleTokenStream(
				adaptor, "token VALUE_SYM");
		RewriteRuleTokenStream stream_COMMA = new RewriteRuleTokenStream(
				adaptor, "token COMMA");
		RewriteRuleTokenStream stream_VALUES = new RewriteRuleTokenStream(
				adaptor, "token VALUES");
		RewriteRuleSubtreeStream stream_column_value_list = new RewriteRuleSubtreeStream(
				adaptor, "rule column_value_list");
		try {
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:210:18: ( ( VALUES |
			// VALUE_SYM ) column_value_list ( COMMA column_value_list )* -> ^(
			// VALUES ( column_value_list )+ ) )
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:210:20: ( VALUES |
			// VALUE_SYM ) column_value_list ( COMMA column_value_list )*
			{
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:210:20: ( VALUES
				// | VALUE_SYM )
				int alt63 = 2;
				int LA63_0 = input.LA(1);

				if ((LA63_0 == VALUES)) {
					alt63 = 1;
				} else if ((LA63_0 == VALUE_SYM)) {
					alt63 = 2;
				} else {
					if (state.backtracking > 0) {
						state.failed = true;
						return retval;
					}
					NoViableAltException nvae = new NoViableAltException("",
							63, 0, input);

					throw nvae;
				}
				switch (alt63) {
				case 1:
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:210:21: VALUES
				{
					VALUES161 = (Token) match(input, VALUES,
							FOLLOW_VALUES_in_value_list_clause1429);
					if (state.failed)
						return retval;
					if (state.backtracking == 0)
						stream_VALUES.add(VALUES161);

				}
					break;
				case 2:
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:210:30: VALUE_SYM
				{
					VALUE_SYM162 = (Token) match(input, VALUE_SYM,
							FOLLOW_VALUE_SYM_in_value_list_clause1433);
					if (state.failed)
						return retval;
					if (state.backtracking == 0)
						stream_VALUE_SYM.add(VALUE_SYM162);

				}
					break;

				}

				pushFollow(FOLLOW_column_value_list_in_value_list_clause1436);
				column_value_list163 = column_value_list();

				state._fsp--;
				if (state.failed)
					return retval;
				if (state.backtracking == 0)
					stream_column_value_list
							.add(column_value_list163.getTree());
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:210:59: ( COMMA
				// column_value_list )*
				loop64: do {
					int alt64 = 2;
					int LA64_0 = input.LA(1);

					if ((LA64_0 == COMMA)) {
						alt64 = 1;
					}

					switch (alt64) {
					case 1:
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:210:60: COMMA
					// column_value_list
					{
						COMMA164 = (Token) match(input, COMMA,
								FOLLOW_COMMA_in_value_list_clause1439);
						if (state.failed)
							return retval;
						if (state.backtracking == 0)
							stream_COMMA.add(COMMA164);

						pushFollow(FOLLOW_column_value_list_in_value_list_clause1441);
						column_value_list165 = column_value_list();

						state._fsp--;
						if (state.failed)
							return retval;
						if (state.backtracking == 0)
							stream_column_value_list.add(column_value_list165
									.getTree());

					}
						break;

					default:
						break loop64;
					}
				} while (true);

				// AST REWRITE
				// elements: column_value_list, VALUES
				// token labels:
				// rule labels: retval
				// token list labels:
				// rule list labels:
				// wildcard labels:
				if (state.backtracking == 0) {
					retval.tree = root_0;
					RewriteRuleSubtreeStream stream_retval = new RewriteRuleSubtreeStream(
							adaptor, "rule retval",
							retval != null ? retval.tree : null);

					root_0 = (Object) adaptor.nil();
					// 210:86: -> ^( VALUES ( column_value_list )+ )
					{
						// C:\\Users\\grand\\Desktop\\another\\MySQL.g:210:88:
						// ^( VALUES ( column_value_list )+ )
						{
							Object root_1 = (Object) adaptor.nil();
							root_1 = (Object) adaptor.becomeRoot(
									stream_VALUES.nextNode(), root_1);

							if (!(stream_column_value_list.hasNext())) {
								throw new RewriteEarlyExitException();
							}
							while (stream_column_value_list.hasNext()) {
								adaptor.addChild(root_1,
										stream_column_value_list.nextTree());

							}
							stream_column_value_list.reset();

							adaptor.addChild(root_0, root_1);
						}

					}

					retval.tree = root_0;
				}
			}

			retval.stop = input.LT(-1);

			if (state.backtracking == 0) {

				retval.tree = (Object) adaptor.rulePostProcessing(root_0);
				adaptor.setTokenBoundaries(retval.tree, retval.start,
						retval.stop);
			}
		} catch (RecognitionException re) {
			reportError(re);
			recover(input, re);
			retval.tree = (Object) adaptor.errorNode(input, retval.start,
					input.LT(-1), re);

		} finally {
		}
		return retval;
	}

	// $ANTLR end "value_list_clause"

	public static class column_value_list_return extends ParserRuleReturnScope {
		Object tree;

		public Object getTree() {
			return tree;
		}
	};

	// $ANTLR start "column_value_list"
	// C:\\Users\\grand\\Desktop\\another\\MySQL.g:212:1: column_value_list :
	// LPAREN ( bit_expr | DEFAULT ) ( COMMA ( bit_expr | DEFAULT ) )* RPAREN ;
	public final MySQLParser.column_value_list_return column_value_list()
			throws RecognitionException {
		MySQLParser.column_value_list_return retval = new MySQLParser.column_value_list_return();
		retval.start = input.LT(1);

		Object root_0 = null;

		Token LPAREN166 = null;
		Token DEFAULT168 = null;
		Token COMMA169 = null;
		Token DEFAULT171 = null;
		Token RPAREN172 = null;
		MySQLParser.bit_expr_return bit_expr167 = null;

		MySQLParser.bit_expr_return bit_expr170 = null;

		Object LPAREN166_tree = null;
		Object DEFAULT168_tree = null;
		Object COMMA169_tree = null;
		Object DEFAULT171_tree = null;
		Object RPAREN172_tree = null;

		try {
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:212:18: ( LPAREN (
			// bit_expr | DEFAULT ) ( COMMA ( bit_expr | DEFAULT ) )* RPAREN )
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:212:20: LPAREN (
			// bit_expr | DEFAULT ) ( COMMA ( bit_expr | DEFAULT ) )* RPAREN
			{
				root_0 = (Object) adaptor.nil();

				LPAREN166 = (Token) match(input, LPAREN,
						FOLLOW_LPAREN_in_column_value_list1458);
				if (state.failed)
					return retval;
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:212:28: (
				// bit_expr | DEFAULT )
				int alt65 = 2;
				int LA65_0 = input.LA(1);

				if ((LA65_0 == INTEGER_NUM || LA65_0 == LPAREN
						|| LA65_0 == INSERT || LA65_0 == VALUES || LA65_0 == IF
						|| LA65_0 == EXISTS || LA65_0 == TEXT_STRING
						|| LA65_0 == NULL_SYM
						|| (LA65_0 >= DATE_SYM && LA65_0 <= TIMESTAMP)
						|| (LA65_0 >= YEAR && LA65_0 <= CHAR)
						|| LA65_0 == BINARY || LA65_0 == MATCH
						|| LA65_0 == PASSWORD || LA65_0 == CONVERT_SYM
						|| LA65_0 == TRUNCATE || LA65_0 == REPLACE
						|| LA65_0 == CURRENT_USER || LA65_0 == ASCII_SYM
						|| (LA65_0 >= SECOND && LA65_0 <= HOUR)
						|| (LA65_0 >= WEEK && LA65_0 <= QUARTER)
						|| (LA65_0 >= PLUS && LA65_0 <= ID)
						|| (LA65_0 >= NEGATION && LA65_0 <= CASE_SYM) || LA65_0 == INTERVAL_SYM)) {
					alt65 = 1;
				} else if ((LA65_0 == DEFAULT)) {
					int LA65_2 = input.LA(2);

					if ((synpred86_MySQL())) {
						alt65 = 1;
					} else if ((true)) {
						alt65 = 2;
					} else {
						if (state.backtracking > 0) {
							state.failed = true;
							return retval;
						}
						NoViableAltException nvae = new NoViableAltException(
								"", 65, 2, input);

						throw nvae;
					}
				} else {
					if (state.backtracking > 0) {
						state.failed = true;
						return retval;
					}
					NoViableAltException nvae = new NoViableAltException("",
							65, 0, input);

					throw nvae;
				}
				switch (alt65) {
				case 1:
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:212:29: bit_expr
				{
					pushFollow(FOLLOW_bit_expr_in_column_value_list1462);
					bit_expr167 = bit_expr();

					state._fsp--;
					if (state.failed)
						return retval;
					if (state.backtracking == 0)
						adaptor.addChild(root_0, bit_expr167.getTree());

				}
					break;
				case 2:
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:212:38: DEFAULT
				{
					DEFAULT168 = (Token) match(input, DEFAULT,
							FOLLOW_DEFAULT_in_column_value_list1464);
					if (state.failed)
						return retval;
					if (state.backtracking == 0) {
						DEFAULT168_tree = (Object) adaptor.create(DEFAULT168);
						adaptor.addChild(root_0, DEFAULT168_tree);
					}

				}
					break;

				}

				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:212:47: ( COMMA (
				// bit_expr | DEFAULT ) )*
				loop67: do {
					int alt67 = 2;
					int LA67_0 = input.LA(1);

					if ((LA67_0 == COMMA)) {
						alt67 = 1;
					}

					switch (alt67) {
					case 1:
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:212:48: COMMA
					// ( bit_expr | DEFAULT )
					{
						COMMA169 = (Token) match(input, COMMA,
								FOLLOW_COMMA_in_column_value_list1468);
						if (state.failed)
							return retval;
						// C:\\Users\\grand\\Desktop\\another\\MySQL.g:212:55: (
						// bit_expr | DEFAULT )
						int alt66 = 2;
						int LA66_0 = input.LA(1);

						if ((LA66_0 == INTEGER_NUM || LA66_0 == LPAREN
								|| LA66_0 == INSERT || LA66_0 == VALUES
								|| LA66_0 == IF || LA66_0 == EXISTS
								|| LA66_0 == TEXT_STRING || LA66_0 == NULL_SYM
								|| (LA66_0 >= DATE_SYM && LA66_0 <= TIMESTAMP)
								|| (LA66_0 >= YEAR && LA66_0 <= CHAR)
								|| LA66_0 == BINARY || LA66_0 == MATCH
								|| LA66_0 == PASSWORD || LA66_0 == CONVERT_SYM
								|| LA66_0 == TRUNCATE || LA66_0 == REPLACE
								|| LA66_0 == CURRENT_USER
								|| LA66_0 == ASCII_SYM
								|| (LA66_0 >= SECOND && LA66_0 <= HOUR)
								|| (LA66_0 >= WEEK && LA66_0 <= QUARTER)
								|| (LA66_0 >= PLUS && LA66_0 <= ID)
								|| (LA66_0 >= NEGATION && LA66_0 <= CASE_SYM) || LA66_0 == INTERVAL_SYM)) {
							alt66 = 1;
						} else if ((LA66_0 == DEFAULT)) {
							int LA66_2 = input.LA(2);

							if ((synpred87_MySQL())) {
								alt66 = 1;
							} else if ((true)) {
								alt66 = 2;
							} else {
								if (state.backtracking > 0) {
									state.failed = true;
									return retval;
								}
								NoViableAltException nvae = new NoViableAltException(
										"", 66, 2, input);

								throw nvae;
							}
						} else {
							if (state.backtracking > 0) {
								state.failed = true;
								return retval;
							}
							NoViableAltException nvae = new NoViableAltException(
									"", 66, 0, input);

							throw nvae;
						}
						switch (alt66) {
						case 1:
						// C:\\Users\\grand\\Desktop\\another\\MySQL.g:212:56:
						// bit_expr
						{
							pushFollow(FOLLOW_bit_expr_in_column_value_list1472);
							bit_expr170 = bit_expr();

							state._fsp--;
							if (state.failed)
								return retval;
							if (state.backtracking == 0)
								adaptor.addChild(root_0, bit_expr170.getTree());

						}
							break;
						case 2:
						// C:\\Users\\grand\\Desktop\\another\\MySQL.g:212:65:
						// DEFAULT
						{
							DEFAULT171 = (Token) match(input, DEFAULT,
									FOLLOW_DEFAULT_in_column_value_list1474);
							if (state.failed)
								return retval;
							if (state.backtracking == 0) {
								DEFAULT171_tree = (Object) adaptor
										.create(DEFAULT171);
								adaptor.addChild(root_0, DEFAULT171_tree);
							}

						}
							break;

						}

					}
						break;

					default:
						break loop67;
					}
				} while (true);

				RPAREN172 = (Token) match(input, RPAREN,
						FOLLOW_RPAREN_in_column_value_list1480);
				if (state.failed)
					return retval;

			}

			retval.stop = input.LT(-1);

			if (state.backtracking == 0) {

				retval.tree = (Object) adaptor.rulePostProcessing(root_0);
				adaptor.setTokenBoundaries(retval.tree, retval.start,
						retval.stop);
			}
		} catch (RecognitionException re) {
			reportError(re);
			recover(input, re);
			retval.tree = (Object) adaptor.errorNode(input, retval.start,
					input.LT(-1), re);

		} finally {
		}
		return retval;
	}

	// $ANTLR end "column_value_list"

	public static class insert_statement2_return extends ParserRuleReturnScope {
		Object tree;

		public Object getTree() {
			return tree;
		}
	};

	// $ANTLR start "insert_statement2"
	// C:\\Users\\grand\\Desktop\\another\\MySQL.g:214:1: insert_statement2 :
	// insert_header set_columns_cluase ( insert_subfix )? -> ^( insert_header
	// set_columns_cluase ) ;
	public final MySQLParser.insert_statement2_return insert_statement2()
			throws RecognitionException {
		MySQLParser.insert_statement2_return retval = new MySQLParser.insert_statement2_return();
		retval.start = input.LT(1);

		Object root_0 = null;

		MySQLParser.insert_header_return insert_header173 = null;

		MySQLParser.set_columns_cluase_return set_columns_cluase174 = null;

		MySQLParser.insert_subfix_return insert_subfix175 = null;

		RewriteRuleSubtreeStream stream_insert_subfix = new RewriteRuleSubtreeStream(
				adaptor, "rule insert_subfix");
		RewriteRuleSubtreeStream stream_set_columns_cluase = new RewriteRuleSubtreeStream(
				adaptor, "rule set_columns_cluase");
		RewriteRuleSubtreeStream stream_insert_header = new RewriteRuleSubtreeStream(
				adaptor, "rule insert_header");
		try {
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:214:18: (
			// insert_header set_columns_cluase ( insert_subfix )? -> ^(
			// insert_header set_columns_cluase ) )
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:215:2: insert_header
			// set_columns_cluase ( insert_subfix )?
			{
				pushFollow(FOLLOW_insert_header_in_insert_statement21489);
				insert_header173 = insert_header();

				state._fsp--;
				if (state.failed)
					return retval;
				if (state.backtracking == 0)
					stream_insert_header.add(insert_header173.getTree());
				pushFollow(FOLLOW_set_columns_cluase_in_insert_statement21492);
				set_columns_cluase174 = set_columns_cluase();

				state._fsp--;
				if (state.failed)
					return retval;
				if (state.backtracking == 0)
					stream_set_columns_cluase.add(set_columns_cluase174
							.getTree());
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:217:2: (
				// insert_subfix )?
				int alt68 = 2;
				int LA68_0 = input.LA(1);

				if ((LA68_0 == ON)) {
					alt68 = 1;
				}
				switch (alt68) {
				case 1:
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:217:4:
				// insert_subfix
				{
					pushFollow(FOLLOW_insert_subfix_in_insert_statement21497);
					insert_subfix175 = insert_subfix();

					state._fsp--;
					if (state.failed)
						return retval;
					if (state.backtracking == 0)
						stream_insert_subfix.add(insert_subfix175.getTree());

				}
					break;

				}

				// AST REWRITE
				// elements: insert_header, set_columns_cluase
				// token labels:
				// rule labels: retval
				// token list labels:
				// rule list labels:
				// wildcard labels:
				if (state.backtracking == 0) {
					retval.tree = root_0;
					RewriteRuleSubtreeStream stream_retval = new RewriteRuleSubtreeStream(
							adaptor, "rule retval",
							retval != null ? retval.tree : null);

					root_0 = (Object) adaptor.nil();
					// 218:2: -> ^( insert_header set_columns_cluase )
					{
						// C:\\Users\\grand\\Desktop\\another\\MySQL.g:218:4: ^(
						// insert_header set_columns_cluase )
						{
							Object root_1 = (Object) adaptor.nil();
							root_1 = (Object) adaptor.becomeRoot(
									stream_insert_header.nextNode(), root_1);

							adaptor.addChild(root_1,
									stream_set_columns_cluase.nextTree());

							adaptor.addChild(root_0, root_1);
						}

					}

					retval.tree = root_0;
				}
			}

			retval.stop = input.LT(-1);

			if (state.backtracking == 0) {

				retval.tree = (Object) adaptor.rulePostProcessing(root_0);
				adaptor.setTokenBoundaries(retval.tree, retval.start,
						retval.stop);
			}
		} catch (RecognitionException re) {
			reportError(re);
			recover(input, re);
			retval.tree = (Object) adaptor.errorNode(input, retval.start,
					input.LT(-1), re);

		} finally {
		}
		return retval;
	}

	// $ANTLR end "insert_statement2"

	public static class set_columns_cluase_return extends ParserRuleReturnScope {
		Object tree;

		public Object getTree() {
			return tree;
		}
	};

	// $ANTLR start "set_columns_cluase"
	// C:\\Users\\grand\\Desktop\\another\\MySQL.g:220:1: set_columns_cluase :
	// SET_SYM set_column_cluase ( COMMA set_column_cluase )* ;
	public final MySQLParser.set_columns_cluase_return set_columns_cluase()
			throws RecognitionException {
		MySQLParser.set_columns_cluase_return retval = new MySQLParser.set_columns_cluase_return();
		retval.start = input.LT(1);

		Object root_0 = null;

		Token SET_SYM176 = null;
		Token COMMA178 = null;
		MySQLParser.set_column_cluase_return set_column_cluase177 = null;

		MySQLParser.set_column_cluase_return set_column_cluase179 = null;

		Object SET_SYM176_tree = null;
		Object COMMA178_tree = null;

		try {
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:220:19: ( SET_SYM
			// set_column_cluase ( COMMA set_column_cluase )* )
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:220:21: SET_SYM
			// set_column_cluase ( COMMA set_column_cluase )*
			{
				root_0 = (Object) adaptor.nil();

				SET_SYM176 = (Token) match(input, SET_SYM,
						FOLLOW_SET_SYM_in_set_columns_cluase1516);
				if (state.failed)
					return retval;
				if (state.backtracking == 0) {
					SET_SYM176_tree = (Object) adaptor.create(SET_SYM176);
					root_0 = (Object) adaptor.becomeRoot(SET_SYM176_tree,
							root_0);
				}
				pushFollow(FOLLOW_set_column_cluase_in_set_columns_cluase1519);
				set_column_cluase177 = set_column_cluase();

				state._fsp--;
				if (state.failed)
					return retval;
				if (state.backtracking == 0)
					adaptor.addChild(root_0, set_column_cluase177.getTree());
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:220:48: ( COMMA
				// set_column_cluase )*
				loop69: do {
					int alt69 = 2;
					int LA69_0 = input.LA(1);

					if ((LA69_0 == COMMA)) {
						alt69 = 1;
					}

					switch (alt69) {
					case 1:
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:220:50: COMMA
					// set_column_cluase
					{
						COMMA178 = (Token) match(input, COMMA,
								FOLLOW_COMMA_in_set_columns_cluase1523);
						if (state.failed)
							return retval;
						pushFollow(FOLLOW_set_column_cluase_in_set_columns_cluase1526);
						set_column_cluase179 = set_column_cluase();

						state._fsp--;
						if (state.failed)
							return retval;
						if (state.backtracking == 0)
							adaptor.addChild(root_0,
									set_column_cluase179.getTree());

					}
						break;

					default:
						break loop69;
					}
				} while (true);

			}

			retval.stop = input.LT(-1);

			if (state.backtracking == 0) {

				retval.tree = (Object) adaptor.rulePostProcessing(root_0);
				adaptor.setTokenBoundaries(retval.tree, retval.start,
						retval.stop);
			}
		} catch (RecognitionException re) {
			reportError(re);
			recover(input, re);
			retval.tree = (Object) adaptor.errorNode(input, retval.start,
					input.LT(-1), re);

		} finally {
		}
		return retval;
	}

	// $ANTLR end "set_columns_cluase"

	public static class set_column_cluase_return extends ParserRuleReturnScope {
		Object tree;

		public Object getTree() {
			return tree;
		}
	};

	// $ANTLR start "set_column_cluase"
	// C:\\Users\\grand\\Desktop\\another\\MySQL.g:222:1: set_column_cluase :
	// column_spec EQ_SYM ( expression -> ^( EQ_SYM column_spec expression ) |
	// DEFAULT -> ^( EQ_SYM column_spec DEFAULT ) ) ;
	public final MySQLParser.set_column_cluase_return set_column_cluase()
			throws RecognitionException {
		MySQLParser.set_column_cluase_return retval = new MySQLParser.set_column_cluase_return();
		retval.start = input.LT(1);

		Object root_0 = null;

		Token EQ_SYM181 = null;
		Token DEFAULT183 = null;
		MySQLParser.column_spec_return column_spec180 = null;

		MySQLParser.expression_return expression182 = null;

		Object EQ_SYM181_tree = null;
		Object DEFAULT183_tree = null;
		RewriteRuleTokenStream stream_DEFAULT = new RewriteRuleTokenStream(
				adaptor, "token DEFAULT");
		RewriteRuleTokenStream stream_EQ_SYM = new RewriteRuleTokenStream(
				adaptor, "token EQ_SYM");
		RewriteRuleSubtreeStream stream_expression = new RewriteRuleSubtreeStream(
				adaptor, "rule expression");
		RewriteRuleSubtreeStream stream_column_spec = new RewriteRuleSubtreeStream(
				adaptor, "rule column_spec");
		try {
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:222:18: ( column_spec
			// EQ_SYM ( expression -> ^( EQ_SYM column_spec expression ) |
			// DEFAULT -> ^( EQ_SYM column_spec DEFAULT ) ) )
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:223:2: column_spec
			// EQ_SYM ( expression -> ^( EQ_SYM column_spec expression ) |
			// DEFAULT -> ^( EQ_SYM column_spec DEFAULT ) )
			{
				pushFollow(FOLLOW_column_spec_in_set_column_cluase1538);
				column_spec180 = column_spec();

				state._fsp--;
				if (state.failed)
					return retval;
				if (state.backtracking == 0)
					stream_column_spec.add(column_spec180.getTree());
				EQ_SYM181 = (Token) match(input, EQ_SYM,
						FOLLOW_EQ_SYM_in_set_column_cluase1540);
				if (state.failed)
					return retval;
				if (state.backtracking == 0)
					stream_EQ_SYM.add(EQ_SYM181);

				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:224:2: (
				// expression -> ^( EQ_SYM column_spec expression ) | DEFAULT ->
				// ^( EQ_SYM column_spec DEFAULT ) )
				int alt70 = 2;
				int LA70_0 = input.LA(1);

				if ((LA70_0 == INTEGER_NUM || LA70_0 == LPAREN
						|| LA70_0 == INSERT || LA70_0 == VALUES
						|| (LA70_0 >= IF && LA70_0 <= EXISTS)
						|| LA70_0 == TEXT_STRING || LA70_0 == NULL_SYM
						|| (LA70_0 >= DATE_SYM && LA70_0 <= TIMESTAMP)
						|| (LA70_0 >= YEAR && LA70_0 <= CHAR)
						|| LA70_0 == BINARY || LA70_0 == MATCH
						|| LA70_0 == PASSWORD || LA70_0 == CONVERT_SYM
						|| LA70_0 == TRUNCATE || LA70_0 == REPLACE
						|| LA70_0 == CURRENT_USER || LA70_0 == ASCII_SYM
						|| (LA70_0 >= SECOND && LA70_0 <= HOUR)
						|| (LA70_0 >= WEEK && LA70_0 <= QUARTER)
						|| (LA70_0 >= PLUS && LA70_0 <= ID)
						|| (LA70_0 >= NEGATION && LA70_0 <= CASE_SYM) || LA70_0 == INTERVAL_SYM)) {
					alt70 = 1;
				} else if ((LA70_0 == DEFAULT)) {
					int LA70_2 = input.LA(2);

					if ((synpred91_MySQL())) {
						alt70 = 1;
					} else if ((true)) {
						alt70 = 2;
					} else {
						if (state.backtracking > 0) {
							state.failed = true;
							return retval;
						}
						NoViableAltException nvae = new NoViableAltException(
								"", 70, 2, input);

						throw nvae;
					}
				} else {
					if (state.backtracking > 0) {
						state.failed = true;
						return retval;
					}
					NoViableAltException nvae = new NoViableAltException("",
							70, 0, input);

					throw nvae;
				}
				switch (alt70) {
				case 1:
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:225:3: expression
				{
					pushFollow(FOLLOW_expression_in_set_column_cluase1548);
					expression182 = expression();

					state._fsp--;
					if (state.failed)
						return retval;
					if (state.backtracking == 0)
						stream_expression.add(expression182.getTree());

					// AST REWRITE
					// elements: expression, EQ_SYM, column_spec
					// token labels:
					// rule labels: retval
					// token list labels:
					// rule list labels:
					// wildcard labels:
					if (state.backtracking == 0) {
						retval.tree = root_0;
						RewriteRuleSubtreeStream stream_retval = new RewriteRuleSubtreeStream(
								adaptor, "rule retval",
								retval != null ? retval.tree : null);

						root_0 = (Object) adaptor.nil();
						// 225:14: -> ^( EQ_SYM column_spec expression )
						{
							// C:\\Users\\grand\\Desktop\\another\\MySQL.g:225:16:
							// ^( EQ_SYM column_spec expression )
							{
								Object root_1 = (Object) adaptor.nil();
								root_1 = (Object) adaptor.becomeRoot(
										stream_EQ_SYM.nextNode(), root_1);

								adaptor.addChild(root_1,
										stream_column_spec.nextTree());
								adaptor.addChild(root_1,
										stream_expression.nextTree());

								adaptor.addChild(root_0, root_1);
							}

						}

						retval.tree = root_0;
					}
				}
					break;
				case 2:
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:227:3: DEFAULT
				{
					DEFAULT183 = (Token) match(input, DEFAULT,
							FOLLOW_DEFAULT_in_set_column_cluase1564);
					if (state.failed)
						return retval;
					if (state.backtracking == 0)
						stream_DEFAULT.add(DEFAULT183);

					// AST REWRITE
					// elements: column_spec, DEFAULT, EQ_SYM
					// token labels:
					// rule labels: retval
					// token list labels:
					// rule list labels:
					// wildcard labels:
					if (state.backtracking == 0) {
						retval.tree = root_0;
						RewriteRuleSubtreeStream stream_retval = new RewriteRuleSubtreeStream(
								adaptor, "rule retval",
								retval != null ? retval.tree : null);

						root_0 = (Object) adaptor.nil();
						// 227:11: -> ^( EQ_SYM column_spec DEFAULT )
						{
							// C:\\Users\\grand\\Desktop\\another\\MySQL.g:227:14:
							// ^( EQ_SYM column_spec DEFAULT )
							{
								Object root_1 = (Object) adaptor.nil();
								root_1 = (Object) adaptor.becomeRoot(
										stream_EQ_SYM.nextNode(), root_1);

								adaptor.addChild(root_1,
										stream_column_spec.nextTree());
								adaptor.addChild(root_1,
										stream_DEFAULT.nextNode());

								adaptor.addChild(root_0, root_1);
							}

						}

						retval.tree = root_0;
					}
				}
					break;

				}

			}

			retval.stop = input.LT(-1);

			if (state.backtracking == 0) {

				retval.tree = (Object) adaptor.rulePostProcessing(root_0);
				adaptor.setTokenBoundaries(retval.tree, retval.start,
						retval.stop);
			}
		} catch (RecognitionException re) {
			reportError(re);
			recover(input, re);
			retval.tree = (Object) adaptor.errorNode(input, retval.start,
					input.LT(-1), re);

		} finally {
		}
		return retval;
	}

	// $ANTLR end "set_column_cluase"

	public static class insert_statement3_return extends ParserRuleReturnScope {
		Object tree;

		public Object getTree() {
			return tree;
		}
	};

	// $ANTLR start "insert_statement3"
	// C:\\Users\\grand\\Desktop\\another\\MySQL.g:230:1: insert_statement3 :
	// insert_header ( column_list )? select_expression ( insert_subfix )? -> ^(
	// insert_header ( column_list )? select_expression ) ;
	public final MySQLParser.insert_statement3_return insert_statement3()
			throws RecognitionException {
		MySQLParser.insert_statement3_return retval = new MySQLParser.insert_statement3_return();
		retval.start = input.LT(1);

		Object root_0 = null;

		MySQLParser.insert_header_return insert_header184 = null;

		MySQLParser.column_list_return column_list185 = null;

		MySQLParser.select_expression_return select_expression186 = null;

		MySQLParser.insert_subfix_return insert_subfix187 = null;

		RewriteRuleSubtreeStream stream_select_expression = new RewriteRuleSubtreeStream(
				adaptor, "rule select_expression");
		RewriteRuleSubtreeStream stream_insert_subfix = new RewriteRuleSubtreeStream(
				adaptor, "rule insert_subfix");
		RewriteRuleSubtreeStream stream_column_list = new RewriteRuleSubtreeStream(
				adaptor, "rule column_list");
		RewriteRuleSubtreeStream stream_insert_header = new RewriteRuleSubtreeStream(
				adaptor, "rule insert_header");
		try {
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:230:18: (
			// insert_header ( column_list )? select_expression ( insert_subfix
			// )? -> ^( insert_header ( column_list )? select_expression ) )
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:231:2: insert_header
			// ( column_list )? select_expression ( insert_subfix )?
			{
				pushFollow(FOLLOW_insert_header_in_insert_statement31586);
				insert_header184 = insert_header();

				state._fsp--;
				if (state.failed)
					return retval;
				if (state.backtracking == 0)
					stream_insert_header.add(insert_header184.getTree());
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:232:2: (
				// column_list )?
				int alt71 = 2;
				int LA71_0 = input.LA(1);

				if ((LA71_0 == LPAREN)) {
					alt71 = 1;
				}
				switch (alt71) {
				case 1:
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:232:3:
				// column_list
				{
					pushFollow(FOLLOW_column_list_in_insert_statement31590);
					column_list185 = column_list();

					state._fsp--;
					if (state.failed)
						return retval;
					if (state.backtracking == 0)
						stream_column_list.add(column_list185.getTree());

				}
					break;

				}

				pushFollow(FOLLOW_select_expression_in_insert_statement31596);
				select_expression186 = select_expression();

				state._fsp--;
				if (state.failed)
					return retval;
				if (state.backtracking == 0)
					stream_select_expression
							.add(select_expression186.getTree());
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:234:2: (
				// insert_subfix )?
				int alt72 = 2;
				int LA72_0 = input.LA(1);

				if ((LA72_0 == ON)) {
					alt72 = 1;
				}
				switch (alt72) {
				case 1:
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:234:4:
				// insert_subfix
				{
					pushFollow(FOLLOW_insert_subfix_in_insert_statement31601);
					insert_subfix187 = insert_subfix();

					state._fsp--;
					if (state.failed)
						return retval;
					if (state.backtracking == 0)
						stream_insert_subfix.add(insert_subfix187.getTree());

				}
					break;

				}

				// AST REWRITE
				// elements: insert_header, column_list, select_expression
				// token labels:
				// rule labels: retval
				// token list labels:
				// rule list labels:
				// wildcard labels:
				if (state.backtracking == 0) {
					retval.tree = root_0;
					RewriteRuleSubtreeStream stream_retval = new RewriteRuleSubtreeStream(
							adaptor, "rule retval",
							retval != null ? retval.tree : null);

					root_0 = (Object) adaptor.nil();
					// 234:21: -> ^( insert_header ( column_list )?
					// select_expression )
					{
						// C:\\Users\\grand\\Desktop\\another\\MySQL.g:234:24:
						// ^( insert_header ( column_list )? select_expression )
						{
							Object root_1 = (Object) adaptor.nil();
							root_1 = (Object) adaptor.becomeRoot(
									stream_insert_header.nextNode(), root_1);

							// C:\\Users\\grand\\Desktop\\another\\MySQL.g:234:40:
							// ( column_list )?
							if (stream_column_list.hasNext()) {
								adaptor.addChild(root_1,
										stream_column_list.nextTree());

							}
							stream_column_list.reset();
							adaptor.addChild(root_1,
									stream_select_expression.nextTree());

							adaptor.addChild(root_0, root_1);
						}

					}

					retval.tree = root_0;
				}
			}

			retval.stop = input.LT(-1);

			if (state.backtracking == 0) {

				retval.tree = (Object) adaptor.rulePostProcessing(root_0);
				adaptor.setTokenBoundaries(retval.tree, retval.start,
						retval.stop);
			}
		} catch (RecognitionException re) {
			reportError(re);
			recover(input, re);
			retval.tree = (Object) adaptor.errorNode(input, retval.start,
					input.LT(-1), re);

		} finally {
		}
		return retval;
	}

	// $ANTLR end "insert_statement3"

	public static class update_statements_return extends ParserRuleReturnScope {
		Object tree;

		public Object getTree() {
			return tree;
		}
	};

	// $ANTLR start "update_statements"
	// C:\\Users\\grand\\Desktop\\another\\MySQL.g:239:1: update_statements : (
	// single_table_update_statement -> single_table_update_statement |
	// multiple_table_update_statement -> multiple_table_update_statement );
	public final MySQLParser.update_statements_return update_statements()
			throws RecognitionException {
		MySQLParser.update_statements_return retval = new MySQLParser.update_statements_return();
		retval.start = input.LT(1);

		Object root_0 = null;

		MySQLParser.single_table_update_statement_return single_table_update_statement188 = null;

		MySQLParser.multiple_table_update_statement_return multiple_table_update_statement189 = null;

		RewriteRuleSubtreeStream stream_single_table_update_statement = new RewriteRuleSubtreeStream(
				adaptor, "rule single_table_update_statement");
		RewriteRuleSubtreeStream stream_multiple_table_update_statement = new RewriteRuleSubtreeStream(
				adaptor, "rule multiple_table_update_statement");
		try {
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:239:19: (
			// single_table_update_statement -> single_table_update_statement |
			// multiple_table_update_statement ->
			// multiple_table_update_statement )
			int alt73 = 2;
			int LA73_0 = input.LA(1);

			if ((LA73_0 == UPDATE)) {
				int LA73_1 = input.LA(2);

				if ((synpred94_MySQL())) {
					alt73 = 1;
				} else if ((true)) {
					alt73 = 2;
				} else {
					if (state.backtracking > 0) {
						state.failed = true;
						return retval;
					}
					NoViableAltException nvae = new NoViableAltException("",
							73, 1, input);

					throw nvae;
				}
			} else {
				if (state.backtracking > 0) {
					state.failed = true;
					return retval;
				}
				NoViableAltException nvae = new NoViableAltException("", 73, 0,
						input);

				throw nvae;
			}
			switch (alt73) {
			case 1:
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:240:2:
			// single_table_update_statement
			{
				pushFollow(FOLLOW_single_table_update_statement_in_update_statements1629);
				single_table_update_statement188 = single_table_update_statement();

				state._fsp--;
				if (state.failed)
					return retval;
				if (state.backtracking == 0)
					stream_single_table_update_statement
							.add(single_table_update_statement188.getTree());

				// AST REWRITE
				// elements: single_table_update_statement
				// token labels:
				// rule labels: retval
				// token list labels:
				// rule list labels:
				// wildcard labels:
				if (state.backtracking == 0) {
					retval.tree = root_0;
					RewriteRuleSubtreeStream stream_retval = new RewriteRuleSubtreeStream(
							adaptor, "rule retval",
							retval != null ? retval.tree : null);

					root_0 = (Object) adaptor.nil();
					// 240:32: -> single_table_update_statement
					{
						adaptor.addChild(root_0,
								stream_single_table_update_statement.nextTree());

					}

					retval.tree = root_0;
				}
			}
				break;
			case 2:
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:241:4:
			// multiple_table_update_statement
			{
				pushFollow(FOLLOW_multiple_table_update_statement_in_update_statements1637);
				multiple_table_update_statement189 = multiple_table_update_statement();

				state._fsp--;
				if (state.failed)
					return retval;
				if (state.backtracking == 0)
					stream_multiple_table_update_statement
							.add(multiple_table_update_statement189.getTree());

				// AST REWRITE
				// elements: multiple_table_update_statement
				// token labels:
				// rule labels: retval
				// token list labels:
				// rule list labels:
				// wildcard labels:
				if (state.backtracking == 0) {
					retval.tree = root_0;
					RewriteRuleSubtreeStream stream_retval = new RewriteRuleSubtreeStream(
							adaptor, "rule retval",
							retval != null ? retval.tree : null);

					root_0 = (Object) adaptor.nil();
					// 241:35: -> multiple_table_update_statement
					{
						adaptor.addChild(root_0,
								stream_multiple_table_update_statement
										.nextTree());

					}

					retval.tree = root_0;
				}
			}
				break;

			}
			retval.stop = input.LT(-1);

			if (state.backtracking == 0) {

				retval.tree = (Object) adaptor.rulePostProcessing(root_0);
				adaptor.setTokenBoundaries(retval.tree, retval.start,
						retval.stop);
			}
		} catch (RecognitionException re) {
			reportError(re);
			recover(input, re);
			retval.tree = (Object) adaptor.errorNode(input, retval.start,
					input.LT(-1), re);

		} finally {
		}
		return retval;
	}

	// $ANTLR end "update_statements"

	public static class single_table_update_statement_return extends
			ParserRuleReturnScope {
		Object tree;

		public Object getTree() {
			return tree;
		}
	};

	// $ANTLR start "single_table_update_statement"
	// C:\\Users\\grand\\Desktop\\another\\MySQL.g:244:1:
	// single_table_update_statement : UPDATE ( LOW_PRIORITY )? ( IGNORE_SYM )?
	// table_reference set_columns_cluase ( where_clause )? ( orderby_clause )?
	// ( limit_clause )? -> ^( UPDATE table_reference ) set_columns_cluase (
	// where_clause )? ( orderby_clause )? ( limit_clause )? ;
	public final MySQLParser.single_table_update_statement_return single_table_update_statement()
			throws RecognitionException {
		MySQLParser.single_table_update_statement_return retval = new MySQLParser.single_table_update_statement_return();
		retval.start = input.LT(1);

		Object root_0 = null;

		Token UPDATE190 = null;
		Token LOW_PRIORITY191 = null;
		Token IGNORE_SYM192 = null;
		MySQLParser.table_reference_return table_reference193 = null;

		MySQLParser.set_columns_cluase_return set_columns_cluase194 = null;

		MySQLParser.where_clause_return where_clause195 = null;

		MySQLParser.orderby_clause_return orderby_clause196 = null;

		MySQLParser.limit_clause_return limit_clause197 = null;

		Object UPDATE190_tree = null;
		Object LOW_PRIORITY191_tree = null;
		Object IGNORE_SYM192_tree = null;
		RewriteRuleTokenStream stream_UPDATE = new RewriteRuleTokenStream(
				adaptor, "token UPDATE");
		RewriteRuleTokenStream stream_LOW_PRIORITY = new RewriteRuleTokenStream(
				adaptor, "token LOW_PRIORITY");
		RewriteRuleTokenStream stream_IGNORE_SYM = new RewriteRuleTokenStream(
				adaptor, "token IGNORE_SYM");
		RewriteRuleSubtreeStream stream_limit_clause = new RewriteRuleSubtreeStream(
				adaptor, "rule limit_clause");
		RewriteRuleSubtreeStream stream_set_columns_cluase = new RewriteRuleSubtreeStream(
				adaptor, "rule set_columns_cluase");
		RewriteRuleSubtreeStream stream_where_clause = new RewriteRuleSubtreeStream(
				adaptor, "rule where_clause");
		RewriteRuleSubtreeStream stream_table_reference = new RewriteRuleSubtreeStream(
				adaptor, "rule table_reference");
		RewriteRuleSubtreeStream stream_orderby_clause = new RewriteRuleSubtreeStream(
				adaptor, "rule orderby_clause");
		try {
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:244:30: ( UPDATE (
			// LOW_PRIORITY )? ( IGNORE_SYM )? table_reference
			// set_columns_cluase ( where_clause )? ( orderby_clause )? (
			// limit_clause )? -> ^( UPDATE table_reference ) set_columns_cluase
			// ( where_clause )? ( orderby_clause )? ( limit_clause )? )
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:245:1: UPDATE (
			// LOW_PRIORITY )? ( IGNORE_SYM )? table_reference
			// set_columns_cluase ( where_clause )? ( orderby_clause )? (
			// limit_clause )?
			{
				UPDATE190 = (Token) match(input, UPDATE,
						FOLLOW_UPDATE_in_single_table_update_statement1649);
				if (state.failed)
					return retval;
				if (state.backtracking == 0)
					stream_UPDATE.add(UPDATE190);

				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:245:8: (
				// LOW_PRIORITY )?
				int alt74 = 2;
				int LA74_0 = input.LA(1);

				if ((LA74_0 == LOW_PRIORITY)) {
					alt74 = 1;
				}
				switch (alt74) {
				case 1:
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:245:9:
				// LOW_PRIORITY
				{
					LOW_PRIORITY191 = (Token) match(input, LOW_PRIORITY,
							FOLLOW_LOW_PRIORITY_in_single_table_update_statement1652);
					if (state.failed)
						return retval;
					if (state.backtracking == 0)
						stream_LOW_PRIORITY.add(LOW_PRIORITY191);

				}
					break;

				}

				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:245:24: (
				// IGNORE_SYM )?
				int alt75 = 2;
				int LA75_0 = input.LA(1);

				if ((LA75_0 == IGNORE_SYM)) {
					alt75 = 1;
				}
				switch (alt75) {
				case 1:
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:245:25:
				// IGNORE_SYM
				{
					IGNORE_SYM192 = (Token) match(input, IGNORE_SYM,
							FOLLOW_IGNORE_SYM_in_single_table_update_statement1657);
					if (state.failed)
						return retval;
					if (state.backtracking == 0)
						stream_IGNORE_SYM.add(IGNORE_SYM192);

				}
					break;

				}

				pushFollow(FOLLOW_table_reference_in_single_table_update_statement1661);
				table_reference193 = table_reference();

				state._fsp--;
				if (state.failed)
					return retval;
				if (state.backtracking == 0)
					stream_table_reference.add(table_reference193.getTree());
				pushFollow(FOLLOW_set_columns_cluase_in_single_table_update_statement1664);
				set_columns_cluase194 = set_columns_cluase();

				state._fsp--;
				if (state.failed)
					return retval;
				if (state.backtracking == 0)
					stream_set_columns_cluase.add(set_columns_cluase194
							.getTree());
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:247:2: (
				// where_clause )?
				int alt76 = 2;
				int LA76_0 = input.LA(1);

				if ((LA76_0 == WHERE)) {
					alt76 = 1;
				}
				switch (alt76) {
				case 1:
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:247:3:
				// where_clause
				{
					pushFollow(FOLLOW_where_clause_in_single_table_update_statement1668);
					where_clause195 = where_clause();

					state._fsp--;
					if (state.failed)
						return retval;
					if (state.backtracking == 0)
						stream_where_clause.add(where_clause195.getTree());

				}
					break;

				}

				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:248:2: (
				// orderby_clause )?
				int alt77 = 2;
				int LA77_0 = input.LA(1);

				if ((LA77_0 == ORDER_SYM)) {
					alt77 = 1;
				}
				switch (alt77) {
				case 1:
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:248:3:
				// orderby_clause
				{
					pushFollow(FOLLOW_orderby_clause_in_single_table_update_statement1674);
					orderby_clause196 = orderby_clause();

					state._fsp--;
					if (state.failed)
						return retval;
					if (state.backtracking == 0)
						stream_orderby_clause.add(orderby_clause196.getTree());

				}
					break;

				}

				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:249:2: (
				// limit_clause )?
				int alt78 = 2;
				int LA78_0 = input.LA(1);

				if ((LA78_0 == LIMIT)) {
					alt78 = 1;
				}
				switch (alt78) {
				case 1:
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:249:3:
				// limit_clause
				{
					pushFollow(FOLLOW_limit_clause_in_single_table_update_statement1680);
					limit_clause197 = limit_clause();

					state._fsp--;
					if (state.failed)
						return retval;
					if (state.backtracking == 0)
						stream_limit_clause.add(limit_clause197.getTree());

				}
					break;

				}

				// AST REWRITE
				// elements: table_reference, limit_clause, orderby_clause,
				// where_clause, set_columns_cluase, UPDATE
				// token labels:
				// rule labels: retval
				// token list labels:
				// rule list labels:
				// wildcard labels:
				if (state.backtracking == 0) {
					retval.tree = root_0;
					RewriteRuleSubtreeStream stream_retval = new RewriteRuleSubtreeStream(
							adaptor, "rule retval",
							retval != null ? retval.tree : null);

					root_0 = (Object) adaptor.nil();
					// 249:18: -> ^( UPDATE table_reference ) set_columns_cluase
					// ( where_clause )? ( orderby_clause )? ( limit_clause )?
					{
						// C:\\Users\\grand\\Desktop\\another\\MySQL.g:249:20:
						// ^( UPDATE table_reference )
						{
							Object root_1 = (Object) adaptor.nil();
							root_1 = (Object) adaptor.becomeRoot(
									stream_UPDATE.nextNode(), root_1);

							adaptor.addChild(root_1,
									stream_table_reference.nextTree());

							adaptor.addChild(root_0, root_1);
						}
						adaptor.addChild(root_0,
								stream_set_columns_cluase.nextTree());
						// C:\\Users\\grand\\Desktop\\another\\MySQL.g:249:65: (
						// where_clause )?
						if (stream_where_clause.hasNext()) {
							adaptor.addChild(root_0,
									stream_where_clause.nextTree());

						}
						stream_where_clause.reset();
						// C:\\Users\\grand\\Desktop\\another\\MySQL.g:249:81: (
						// orderby_clause )?
						if (stream_orderby_clause.hasNext()) {
							adaptor.addChild(root_0,
									stream_orderby_clause.nextTree());

						}
						stream_orderby_clause.reset();
						// C:\\Users\\grand\\Desktop\\another\\MySQL.g:249:98: (
						// limit_clause )?
						if (stream_limit_clause.hasNext()) {
							adaptor.addChild(root_0,
									stream_limit_clause.nextTree());

						}
						stream_limit_clause.reset();

					}

					retval.tree = root_0;
				}
			}

			retval.stop = input.LT(-1);

			if (state.backtracking == 0) {

				retval.tree = (Object) adaptor.rulePostProcessing(root_0);
				adaptor.setTokenBoundaries(retval.tree, retval.start,
						retval.stop);
			}
		} catch (RecognitionException re) {
			reportError(re);
			recover(input, re);
			retval.tree = (Object) adaptor.errorNode(input, retval.start,
					input.LT(-1), re);

		} finally {
		}
		return retval;
	}

	// $ANTLR end "single_table_update_statement"

	public static class multiple_table_update_statement_return extends
			ParserRuleReturnScope {
		Object tree;

		public Object getTree() {
			return tree;
		}
	};

	// $ANTLR start "multiple_table_update_statement"
	// C:\\Users\\grand\\Desktop\\another\\MySQL.g:252:1:
	// multiple_table_update_statement : UPDATE ( LOW_PRIORITY )? ( IGNORE_SYM
	// )? table_references set_columns_cluase ( where_clause )? -> ^( UPDATE
	// table_references ) set_columns_cluase ( where_clause )? ;
	public final MySQLParser.multiple_table_update_statement_return multiple_table_update_statement()
			throws RecognitionException {
		MySQLParser.multiple_table_update_statement_return retval = new MySQLParser.multiple_table_update_statement_return();
		retval.start = input.LT(1);

		Object root_0 = null;

		Token UPDATE198 = null;
		Token LOW_PRIORITY199 = null;
		Token IGNORE_SYM200 = null;
		MySQLParser.table_references_return table_references201 = null;

		MySQLParser.set_columns_cluase_return set_columns_cluase202 = null;

		MySQLParser.where_clause_return where_clause203 = null;

		Object UPDATE198_tree = null;
		Object LOW_PRIORITY199_tree = null;
		Object IGNORE_SYM200_tree = null;
		RewriteRuleTokenStream stream_UPDATE = new RewriteRuleTokenStream(
				adaptor, "token UPDATE");
		RewriteRuleTokenStream stream_LOW_PRIORITY = new RewriteRuleTokenStream(
				adaptor, "token LOW_PRIORITY");
		RewriteRuleTokenStream stream_IGNORE_SYM = new RewriteRuleTokenStream(
				adaptor, "token IGNORE_SYM");
		RewriteRuleSubtreeStream stream_table_references = new RewriteRuleSubtreeStream(
				adaptor, "rule table_references");
		RewriteRuleSubtreeStream stream_set_columns_cluase = new RewriteRuleSubtreeStream(
				adaptor, "rule set_columns_cluase");
		RewriteRuleSubtreeStream stream_where_clause = new RewriteRuleSubtreeStream(
				adaptor, "rule where_clause");
		try {
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:252:32: ( UPDATE (
			// LOW_PRIORITY )? ( IGNORE_SYM )? table_references
			// set_columns_cluase ( where_clause )? -> ^( UPDATE
			// table_references ) set_columns_cluase ( where_clause )? )
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:253:2: UPDATE (
			// LOW_PRIORITY )? ( IGNORE_SYM )? table_references
			// set_columns_cluase ( where_clause )?
			{
				UPDATE198 = (Token) match(input, UPDATE,
						FOLLOW_UPDATE_in_multiple_table_update_statement1715);
				if (state.failed)
					return retval;
				if (state.backtracking == 0)
					stream_UPDATE.add(UPDATE198);

				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:253:9: (
				// LOW_PRIORITY )?
				int alt79 = 2;
				int LA79_0 = input.LA(1);

				if ((LA79_0 == LOW_PRIORITY)) {
					alt79 = 1;
				}
				switch (alt79) {
				case 1:
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:253:10:
				// LOW_PRIORITY
				{
					LOW_PRIORITY199 = (Token) match(input, LOW_PRIORITY,
							FOLLOW_LOW_PRIORITY_in_multiple_table_update_statement1718);
					if (state.failed)
						return retval;
					if (state.backtracking == 0)
						stream_LOW_PRIORITY.add(LOW_PRIORITY199);

				}
					break;

				}

				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:253:25: (
				// IGNORE_SYM )?
				int alt80 = 2;
				int LA80_0 = input.LA(1);

				if ((LA80_0 == IGNORE_SYM)) {
					alt80 = 1;
				}
				switch (alt80) {
				case 1:
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:253:26:
				// IGNORE_SYM
				{
					IGNORE_SYM200 = (Token) match(input, IGNORE_SYM,
							FOLLOW_IGNORE_SYM_in_multiple_table_update_statement1723);
					if (state.failed)
						return retval;
					if (state.backtracking == 0)
						stream_IGNORE_SYM.add(IGNORE_SYM200);

				}
					break;

				}

				pushFollow(FOLLOW_table_references_in_multiple_table_update_statement1727);
				table_references201 = table_references();

				state._fsp--;
				if (state.failed)
					return retval;
				if (state.backtracking == 0)
					stream_table_references.add(table_references201.getTree());
				pushFollow(FOLLOW_set_columns_cluase_in_multiple_table_update_statement1730);
				set_columns_cluase202 = set_columns_cluase();

				state._fsp--;
				if (state.failed)
					return retval;
				if (state.backtracking == 0)
					stream_set_columns_cluase.add(set_columns_cluase202
							.getTree());
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:255:2: (
				// where_clause )?
				int alt81 = 2;
				int LA81_0 = input.LA(1);

				if ((LA81_0 == WHERE)) {
					alt81 = 1;
				}
				switch (alt81) {
				case 1:
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:255:3:
				// where_clause
				{
					pushFollow(FOLLOW_where_clause_in_multiple_table_update_statement1734);
					where_clause203 = where_clause();

					state._fsp--;
					if (state.failed)
						return retval;
					if (state.backtracking == 0)
						stream_where_clause.add(where_clause203.getTree());

				}
					break;

				}

				// AST REWRITE
				// elements: where_clause, table_references, set_columns_cluase,
				// UPDATE
				// token labels:
				// rule labels: retval
				// token list labels:
				// rule list labels:
				// wildcard labels:
				if (state.backtracking == 0) {
					retval.tree = root_0;
					RewriteRuleSubtreeStream stream_retval = new RewriteRuleSubtreeStream(
							adaptor, "rule retval",
							retval != null ? retval.tree : null);

					root_0 = (Object) adaptor.nil();
					// 255:18: -> ^( UPDATE table_references )
					// set_columns_cluase ( where_clause )?
					{
						// C:\\Users\\grand\\Desktop\\another\\MySQL.g:255:20:
						// ^( UPDATE table_references )
						{
							Object root_1 = (Object) adaptor.nil();
							root_1 = (Object) adaptor.becomeRoot(
									stream_UPDATE.nextNode(), root_1);

							adaptor.addChild(root_1,
									stream_table_references.nextTree());

							adaptor.addChild(root_0, root_1);
						}
						adaptor.addChild(root_0,
								stream_set_columns_cluase.nextTree());
						// C:\\Users\\grand\\Desktop\\another\\MySQL.g:255:66: (
						// where_clause )?
						if (stream_where_clause.hasNext()) {
							adaptor.addChild(root_0,
									stream_where_clause.nextTree());

						}
						stream_where_clause.reset();

					}

					retval.tree = root_0;
				}
			}

			retval.stop = input.LT(-1);

			if (state.backtracking == 0) {

				retval.tree = (Object) adaptor.rulePostProcessing(root_0);
				adaptor.setTokenBoundaries(retval.tree, retval.start,
						retval.stop);
			}
		} catch (RecognitionException re) {
			reportError(re);
			recover(input, re);
			retval.tree = (Object) adaptor.errorNode(input, retval.start,
					input.LT(-1), re);

		} finally {
		}
		return retval;
	}

	// $ANTLR end "multiple_table_update_statement"

	public static class create_index_statement_return extends
			ParserRuleReturnScope {
		Object tree;

		public Object getTree() {
			return tree;
		}
	};

	// $ANTLR start "create_index_statement"
	// C:\\Users\\grand\\Desktop\\another\\MySQL.g:259:1: create_index_statement
	// : CREATE ( UNIQUE_SYM | FULLTEXT_SYM | SPATIAL_SYM )? INDEX_SYM
	// index_name ( index_type )? ON table_name LPAREN index_column_name ( COMMA
	// index_column_name )* RPAREN ( algorithm_option | lock_option )* ->;
	public final MySQLParser.create_index_statement_return create_index_statement()
			throws RecognitionException {
		MySQLParser.create_index_statement_return retval = new MySQLParser.create_index_statement_return();
		retval.start = input.LT(1);

		Object root_0 = null;

		Token CREATE204 = null;
		Token UNIQUE_SYM205 = null;
		Token FULLTEXT_SYM206 = null;
		Token SPATIAL_SYM207 = null;
		Token INDEX_SYM208 = null;
		Token ON211 = null;
		Token LPAREN213 = null;
		Token COMMA215 = null;
		Token RPAREN217 = null;
		MySQLParser.index_name_return index_name209 = null;

		MySQLParser.index_type_return index_type210 = null;

		MySQLParser.table_name_return table_name212 = null;

		MySQLParser.index_column_name_return index_column_name214 = null;

		MySQLParser.index_column_name_return index_column_name216 = null;

		MySQLParser.algorithm_option_return algorithm_option218 = null;

		MySQLParser.lock_option_return lock_option219 = null;

		Object CREATE204_tree = null;
		Object UNIQUE_SYM205_tree = null;
		Object FULLTEXT_SYM206_tree = null;
		Object SPATIAL_SYM207_tree = null;
		Object INDEX_SYM208_tree = null;
		Object ON211_tree = null;
		Object LPAREN213_tree = null;
		Object COMMA215_tree = null;
		Object RPAREN217_tree = null;
		RewriteRuleTokenStream stream_SPATIAL_SYM = new RewriteRuleTokenStream(
				adaptor, "token SPATIAL_SYM");
		RewriteRuleTokenStream stream_ON = new RewriteRuleTokenStream(adaptor,
				"token ON");
		RewriteRuleTokenStream stream_RPAREN = new RewriteRuleTokenStream(
				adaptor, "token RPAREN");
		RewriteRuleTokenStream stream_CREATE = new RewriteRuleTokenStream(
				adaptor, "token CREATE");
		RewriteRuleTokenStream stream_COMMA = new RewriteRuleTokenStream(
				adaptor, "token COMMA");
		RewriteRuleTokenStream stream_UNIQUE_SYM = new RewriteRuleTokenStream(
				adaptor, "token UNIQUE_SYM");
		RewriteRuleTokenStream stream_LPAREN = new RewriteRuleTokenStream(
				adaptor, "token LPAREN");
		RewriteRuleTokenStream stream_FULLTEXT_SYM = new RewriteRuleTokenStream(
				adaptor, "token FULLTEXT_SYM");
		RewriteRuleTokenStream stream_INDEX_SYM = new RewriteRuleTokenStream(
				adaptor, "token INDEX_SYM");
		RewriteRuleSubtreeStream stream_index_name = new RewriteRuleSubtreeStream(
				adaptor, "rule index_name");
		RewriteRuleSubtreeStream stream_table_name = new RewriteRuleSubtreeStream(
				adaptor, "rule table_name");
		RewriteRuleSubtreeStream stream_algorithm_option = new RewriteRuleSubtreeStream(
				adaptor, "rule algorithm_option");
		RewriteRuleSubtreeStream stream_index_column_name = new RewriteRuleSubtreeStream(
				adaptor, "rule index_column_name");
		RewriteRuleSubtreeStream stream_lock_option = new RewriteRuleSubtreeStream(
				adaptor, "rule lock_option");
		RewriteRuleSubtreeStream stream_index_type = new RewriteRuleSubtreeStream(
				adaptor, "rule index_type");
		try {
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:259:23: ( CREATE (
			// UNIQUE_SYM | FULLTEXT_SYM | SPATIAL_SYM )? INDEX_SYM index_name (
			// index_type )? ON table_name LPAREN index_column_name ( COMMA
			// index_column_name )* RPAREN ( algorithm_option | lock_option )*
			// ->)
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:260:2: CREATE (
			// UNIQUE_SYM | FULLTEXT_SYM | SPATIAL_SYM )? INDEX_SYM index_name (
			// index_type )? ON table_name LPAREN index_column_name ( COMMA
			// index_column_name )* RPAREN ( algorithm_option | lock_option )*
			{
				CREATE204 = (Token) match(input, CREATE,
						FOLLOW_CREATE_in_create_index_statement1760);
				if (state.failed)
					return retval;
				if (state.backtracking == 0)
					stream_CREATE.add(CREATE204);

				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:260:9: (
				// UNIQUE_SYM | FULLTEXT_SYM | SPATIAL_SYM )?
				int alt82 = 4;
				switch (input.LA(1)) {
				case UNIQUE_SYM: {
					alt82 = 1;
				}
					break;
				case FULLTEXT_SYM: {
					alt82 = 2;
				}
					break;
				case SPATIAL_SYM: {
					alt82 = 3;
				}
					break;
				}

				switch (alt82) {
				case 1:
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:260:10:
				// UNIQUE_SYM
				{
					UNIQUE_SYM205 = (Token) match(input, UNIQUE_SYM,
							FOLLOW_UNIQUE_SYM_in_create_index_statement1763);
					if (state.failed)
						return retval;
					if (state.backtracking == 0)
						stream_UNIQUE_SYM.add(UNIQUE_SYM205);

				}
					break;
				case 2:
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:260:21:
				// FULLTEXT_SYM
				{
					FULLTEXT_SYM206 = (Token) match(input, FULLTEXT_SYM,
							FOLLOW_FULLTEXT_SYM_in_create_index_statement1765);
					if (state.failed)
						return retval;
					if (state.backtracking == 0)
						stream_FULLTEXT_SYM.add(FULLTEXT_SYM206);

				}
					break;
				case 3:
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:260:34:
				// SPATIAL_SYM
				{
					SPATIAL_SYM207 = (Token) match(input, SPATIAL_SYM,
							FOLLOW_SPATIAL_SYM_in_create_index_statement1767);
					if (state.failed)
						return retval;
					if (state.backtracking == 0)
						stream_SPATIAL_SYM.add(SPATIAL_SYM207);

				}
					break;

				}

				INDEX_SYM208 = (Token) match(input, INDEX_SYM,
						FOLLOW_INDEX_SYM_in_create_index_statement1771);
				if (state.failed)
					return retval;
				if (state.backtracking == 0)
					stream_INDEX_SYM.add(INDEX_SYM208);

				pushFollow(FOLLOW_index_name_in_create_index_statement1773);
				index_name209 = index_name();

				state._fsp--;
				if (state.failed)
					return retval;
				if (state.backtracking == 0)
					stream_index_name.add(index_name209.getTree());
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:261:2: (
				// index_type )?
				int alt83 = 2;
				int LA83_0 = input.LA(1);

				if ((LA83_0 == USING_SYM)) {
					alt83 = 1;
				}
				switch (alt83) {
				case 1:
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:261:3: index_type
				{
					pushFollow(FOLLOW_index_type_in_create_index_statement1777);
					index_type210 = index_type();

					state._fsp--;
					if (state.failed)
						return retval;
					if (state.backtracking == 0)
						stream_index_type.add(index_type210.getTree());

				}
					break;

				}

				ON211 = (Token) match(input, ON,
						FOLLOW_ON_in_create_index_statement1782);
				if (state.failed)
					return retval;
				if (state.backtracking == 0)
					stream_ON.add(ON211);

				pushFollow(FOLLOW_table_name_in_create_index_statement1784);
				table_name212 = table_name();

				state._fsp--;
				if (state.failed)
					return retval;
				if (state.backtracking == 0)
					stream_table_name.add(table_name212.getTree());
				LPAREN213 = (Token) match(input, LPAREN,
						FOLLOW_LPAREN_in_create_index_statement1786);
				if (state.failed)
					return retval;
				if (state.backtracking == 0)
					stream_LPAREN.add(LPAREN213);

				pushFollow(FOLLOW_index_column_name_in_create_index_statement1788);
				index_column_name214 = index_column_name();

				state._fsp--;
				if (state.failed)
					return retval;
				if (state.backtracking == 0)
					stream_index_column_name
							.add(index_column_name214.getTree());
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:262:41: ( COMMA
				// index_column_name )*
				loop84: do {
					int alt84 = 2;
					int LA84_0 = input.LA(1);

					if ((LA84_0 == COMMA)) {
						alt84 = 1;
					}

					switch (alt84) {
					case 1:
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:262:42: COMMA
					// index_column_name
					{
						COMMA215 = (Token) match(input, COMMA,
								FOLLOW_COMMA_in_create_index_statement1791);
						if (state.failed)
							return retval;
						if (state.backtracking == 0)
							stream_COMMA.add(COMMA215);

						pushFollow(FOLLOW_index_column_name_in_create_index_statement1793);
						index_column_name216 = index_column_name();

						state._fsp--;
						if (state.failed)
							return retval;
						if (state.backtracking == 0)
							stream_index_column_name.add(index_column_name216
									.getTree());

					}
						break;

					default:
						break loop84;
					}
				} while (true);

				RPAREN217 = (Token) match(input, RPAREN,
						FOLLOW_RPAREN_in_create_index_statement1797);
				if (state.failed)
					return retval;
				if (state.backtracking == 0)
					stream_RPAREN.add(RPAREN217);

				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:263:2: (
				// algorithm_option | lock_option )*
				loop85: do {
					int alt85 = 3;
					int LA85_0 = input.LA(1);

					if ((LA85_0 == ALGORITHM_SYM)) {
						alt85 = 1;
					} else if ((LA85_0 == LOCK)) {
						alt85 = 2;
					}

					switch (alt85) {
					case 1:
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:263:3:
					// algorithm_option
					{
						pushFollow(FOLLOW_algorithm_option_in_create_index_statement1801);
						algorithm_option218 = algorithm_option();

						state._fsp--;
						if (state.failed)
							return retval;
						if (state.backtracking == 0)
							stream_algorithm_option.add(algorithm_option218
									.getTree());

					}
						break;
					case 2:
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:263:22:
					// lock_option
					{
						pushFollow(FOLLOW_lock_option_in_create_index_statement1805);
						lock_option219 = lock_option();

						state._fsp--;
						if (state.failed)
							return retval;
						if (state.backtracking == 0)
							stream_lock_option.add(lock_option219.getTree());

					}
						break;

					default:
						break loop85;
					}
				} while (true);

				// AST REWRITE
				// elements:
				// token labels:
				// rule labels: retval
				// token list labels:
				// rule list labels:
				// wildcard labels:
				if (state.backtracking == 0) {
					retval.tree = root_0;
					RewriteRuleSubtreeStream stream_retval = new RewriteRuleSubtreeStream(
							adaptor, "rule retval",
							retval != null ? retval.tree : null);

					root_0 = (Object) adaptor.nil();
					// 263:36: ->
					{
						root_0 = null;
					}

					retval.tree = root_0;
				}
			}

			retval.stop = input.LT(-1);

			if (state.backtracking == 0) {

				retval.tree = (Object) adaptor.rulePostProcessing(root_0);
				adaptor.setTokenBoundaries(retval.tree, retval.start,
						retval.stop);
			}
		} catch (RecognitionException re) {
			reportError(re);
			recover(input, re);
			retval.tree = (Object) adaptor.errorNode(input, retval.start,
					input.LT(-1), re);

		} finally {
		}
		return retval;
	}

	// $ANTLR end "create_index_statement"

	public static class algorithm_option_return extends ParserRuleReturnScope {
		Object tree;

		public Object getTree() {
			return tree;
		}
	};

	// $ANTLR start "algorithm_option"
	// C:\\Users\\grand\\Desktop\\another\\MySQL.g:265:1: algorithm_option :
	// ALGORITHM_SYM ( EQ_SYM )? ( DEFAULT | INPLACE_SYM | COPY_SYM ) ;
	public final MySQLParser.algorithm_option_return algorithm_option()
			throws RecognitionException {
		MySQLParser.algorithm_option_return retval = new MySQLParser.algorithm_option_return();
		retval.start = input.LT(1);

		Object root_0 = null;

		Token ALGORITHM_SYM220 = null;
		Token EQ_SYM221 = null;
		Token set222 = null;

		Object ALGORITHM_SYM220_tree = null;
		Object EQ_SYM221_tree = null;
		Object set222_tree = null;

		try {
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:265:17: (
			// ALGORITHM_SYM ( EQ_SYM )? ( DEFAULT | INPLACE_SYM | COPY_SYM ) )
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:266:2: ALGORITHM_SYM
			// ( EQ_SYM )? ( DEFAULT | INPLACE_SYM | COPY_SYM )
			{
				root_0 = (Object) adaptor.nil();

				ALGORITHM_SYM220 = (Token) match(input, ALGORITHM_SYM,
						FOLLOW_ALGORITHM_SYM_in_algorithm_option1817);
				if (state.failed)
					return retval;
				if (state.backtracking == 0) {
					ALGORITHM_SYM220_tree = (Object) adaptor
							.create(ALGORITHM_SYM220);
					adaptor.addChild(root_0, ALGORITHM_SYM220_tree);
				}
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:266:16: ( EQ_SYM
				// )?
				int alt86 = 2;
				int LA86_0 = input.LA(1);

				if ((LA86_0 == EQ_SYM)) {
					alt86 = 1;
				}
				switch (alt86) {
				case 1:
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:266:17: EQ_SYM
				{
					EQ_SYM221 = (Token) match(input, EQ_SYM,
							FOLLOW_EQ_SYM_in_algorithm_option1820);
					if (state.failed)
						return retval;
					if (state.backtracking == 0) {
						EQ_SYM221_tree = (Object) adaptor.create(EQ_SYM221);
						adaptor.addChild(root_0, EQ_SYM221_tree);
					}

				}
					break;

				}

				set222 = (Token) input.LT(1);
				if (input.LA(1) == DEFAULT
						|| (input.LA(1) >= INPLACE_SYM && input.LA(1) <= COPY_SYM)) {
					input.consume();
					if (state.backtracking == 0)
						adaptor.addChild(root_0,
								(Object) adaptor.create(set222));
					state.errorRecovery = false;
					state.failed = false;
				} else {
					if (state.backtracking > 0) {
						state.failed = true;
						return retval;
					}
					MismatchedSetException mse = new MismatchedSetException(
							null, input);
					throw mse;
				}

			}

			retval.stop = input.LT(-1);

			if (state.backtracking == 0) {

				retval.tree = (Object) adaptor.rulePostProcessing(root_0);
				adaptor.setTokenBoundaries(retval.tree, retval.start,
						retval.stop);
			}
		} catch (RecognitionException re) {
			reportError(re);
			recover(input, re);
			retval.tree = (Object) adaptor.errorNode(input, retval.start,
					input.LT(-1), re);

		} finally {
		}
		return retval;
	}

	// $ANTLR end "algorithm_option"

	public static class lock_option_return extends ParserRuleReturnScope {
		Object tree;

		public Object getTree() {
			return tree;
		}
	};

	// $ANTLR start "lock_option"
	// C:\\Users\\grand\\Desktop\\another\\MySQL.g:268:1: lock_option : LOCK (
	// EQ_SYM )? ( DEFAULT | NONE_SYM | SHARED_SYM | EXCLUSIVE_SYM ) ;
	public final MySQLParser.lock_option_return lock_option()
			throws RecognitionException {
		MySQLParser.lock_option_return retval = new MySQLParser.lock_option_return();
		retval.start = input.LT(1);

		Object root_0 = null;

		Token LOCK223 = null;
		Token EQ_SYM224 = null;
		Token set225 = null;

		Object LOCK223_tree = null;
		Object EQ_SYM224_tree = null;
		Object set225_tree = null;

		try {
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:268:12: ( LOCK (
			// EQ_SYM )? ( DEFAULT | NONE_SYM | SHARED_SYM | EXCLUSIVE_SYM ) )
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:269:2: LOCK ( EQ_SYM
			// )? ( DEFAULT | NONE_SYM | SHARED_SYM | EXCLUSIVE_SYM )
			{
				root_0 = (Object) adaptor.nil();

				LOCK223 = (Token) match(input, LOCK,
						FOLLOW_LOCK_in_lock_option1838);
				if (state.failed)
					return retval;
				if (state.backtracking == 0) {
					LOCK223_tree = (Object) adaptor.create(LOCK223);
					adaptor.addChild(root_0, LOCK223_tree);
				}
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:269:7: ( EQ_SYM
				// )?
				int alt87 = 2;
				int LA87_0 = input.LA(1);

				if ((LA87_0 == EQ_SYM)) {
					alt87 = 1;
				}
				switch (alt87) {
				case 1:
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:269:8: EQ_SYM
				{
					EQ_SYM224 = (Token) match(input, EQ_SYM,
							FOLLOW_EQ_SYM_in_lock_option1841);
					if (state.failed)
						return retval;
					if (state.backtracking == 0) {
						EQ_SYM224_tree = (Object) adaptor.create(EQ_SYM224);
						adaptor.addChild(root_0, EQ_SYM224_tree);
					}

				}
					break;

				}

				set225 = (Token) input.LT(1);
				if (input.LA(1) == DEFAULT
						|| (input.LA(1) >= NONE_SYM && input.LA(1) <= EXCLUSIVE_SYM)) {
					input.consume();
					if (state.backtracking == 0)
						adaptor.addChild(root_0,
								(Object) adaptor.create(set225));
					state.errorRecovery = false;
					state.failed = false;
				} else {
					if (state.backtracking > 0) {
						state.failed = true;
						return retval;
					}
					MismatchedSetException mse = new MismatchedSetException(
							null, input);
					throw mse;
				}

			}

			retval.stop = input.LT(-1);

			if (state.backtracking == 0) {

				retval.tree = (Object) adaptor.rulePostProcessing(root_0);
				adaptor.setTokenBoundaries(retval.tree, retval.start,
						retval.stop);
			}
		} catch (RecognitionException re) {
			reportError(re);
			recover(input, re);
			retval.tree = (Object) adaptor.errorNode(input, retval.start,
					input.LT(-1), re);

		} finally {
		}
		return retval;
	}

	// $ANTLR end "lock_option"

	public static class drop_index_statement_return extends
			ParserRuleReturnScope {
		Object tree;

		public Object getTree() {
			return tree;
		}
	};

	// $ANTLR start "drop_index_statement"
	// C:\\Users\\grand\\Desktop\\another\\MySQL.g:273:1: drop_index_statement :
	// DROP INDEX_SYM index_name ON table_name ( algorithm_option | lock_option
	// )* ;
	public final MySQLParser.drop_index_statement_return drop_index_statement()
			throws RecognitionException {
		MySQLParser.drop_index_statement_return retval = new MySQLParser.drop_index_statement_return();
		retval.start = input.LT(1);

		Object root_0 = null;

		Token DROP226 = null;
		Token INDEX_SYM227 = null;
		Token ON229 = null;
		MySQLParser.index_name_return index_name228 = null;

		MySQLParser.table_name_return table_name230 = null;

		MySQLParser.algorithm_option_return algorithm_option231 = null;

		MySQLParser.lock_option_return lock_option232 = null;

		Object DROP226_tree = null;
		Object INDEX_SYM227_tree = null;
		Object ON229_tree = null;

		try {
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:273:21: ( DROP
			// INDEX_SYM index_name ON table_name ( algorithm_option |
			// lock_option )* )
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:274:2: DROP INDEX_SYM
			// index_name ON table_name ( algorithm_option | lock_option )*
			{
				root_0 = (Object) adaptor.nil();

				DROP226 = (Token) match(input, DROP,
						FOLLOW_DROP_in_drop_index_statement1863);
				if (state.failed)
					return retval;
				if (state.backtracking == 0) {
					DROP226_tree = (Object) adaptor.create(DROP226);
					adaptor.addChild(root_0, DROP226_tree);
				}
				INDEX_SYM227 = (Token) match(input, INDEX_SYM,
						FOLLOW_INDEX_SYM_in_drop_index_statement1865);
				if (state.failed)
					return retval;
				if (state.backtracking == 0) {
					INDEX_SYM227_tree = (Object) adaptor.create(INDEX_SYM227);
					adaptor.addChild(root_0, INDEX_SYM227_tree);
				}
				pushFollow(FOLLOW_index_name_in_drop_index_statement1867);
				index_name228 = index_name();

				state._fsp--;
				if (state.failed)
					return retval;
				if (state.backtracking == 0)
					adaptor.addChild(root_0, index_name228.getTree());
				ON229 = (Token) match(input, ON,
						FOLLOW_ON_in_drop_index_statement1869);
				if (state.failed)
					return retval;
				if (state.backtracking == 0) {
					ON229_tree = (Object) adaptor.create(ON229);
					adaptor.addChild(root_0, ON229_tree);
				}
				pushFollow(FOLLOW_table_name_in_drop_index_statement1871);
				table_name230 = table_name();

				state._fsp--;
				if (state.failed)
					return retval;
				if (state.backtracking == 0)
					adaptor.addChild(root_0, table_name230.getTree());
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:275:2: (
				// algorithm_option | lock_option )*
				loop88: do {
					int alt88 = 3;
					int LA88_0 = input.LA(1);

					if ((LA88_0 == ALGORITHM_SYM)) {
						alt88 = 1;
					} else if ((LA88_0 == LOCK)) {
						alt88 = 2;
					}

					switch (alt88) {
					case 1:
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:275:3:
					// algorithm_option
					{
						pushFollow(FOLLOW_algorithm_option_in_drop_index_statement1875);
						algorithm_option231 = algorithm_option();

						state._fsp--;
						if (state.failed)
							return retval;
						if (state.backtracking == 0)
							adaptor.addChild(root_0,
									algorithm_option231.getTree());

					}
						break;
					case 2:
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:275:22:
					// lock_option
					{
						pushFollow(FOLLOW_lock_option_in_drop_index_statement1879);
						lock_option232 = lock_option();

						state._fsp--;
						if (state.failed)
							return retval;
						if (state.backtracking == 0)
							adaptor.addChild(root_0, lock_option232.getTree());

					}
						break;

					default:
						break loop88;
					}
				} while (true);

			}

			retval.stop = input.LT(-1);

			if (state.backtracking == 0) {

				retval.tree = (Object) adaptor.rulePostProcessing(root_0);
				adaptor.setTokenBoundaries(retval.tree, retval.start,
						retval.stop);
			}
		} catch (RecognitionException re) {
			reportError(re);
			recover(input, re);
			retval.tree = (Object) adaptor.errorNode(input, retval.start,
					input.LT(-1), re);

		} finally {
		}
		return retval;
	}

	// $ANTLR end "drop_index_statement"

	public static class create_table_statement_return extends
			ParserRuleReturnScope {
		Object tree;

		public Object getTree() {
			return tree;
		}
	};

	// $ANTLR start "create_table_statement"
	// C:\\Users\\grand\\Desktop\\another\\MySQL.g:279:1: create_table_statement
	// : ( create_table_statement1 -> create_table_statement1 |
	// create_table_statement2 -> create_table_statement2 |
	// create_table_statement3 -> create_table_statement3 );
	public final MySQLParser.create_table_statement_return create_table_statement()
			throws RecognitionException {
		MySQLParser.create_table_statement_return retval = new MySQLParser.create_table_statement_return();
		retval.start = input.LT(1);

		Object root_0 = null;

		MySQLParser.create_table_statement1_return create_table_statement1233 = null;

		MySQLParser.create_table_statement2_return create_table_statement2234 = null;

		MySQLParser.create_table_statement3_return create_table_statement3235 = null;

		RewriteRuleSubtreeStream stream_create_table_statement3 = new RewriteRuleSubtreeStream(
				adaptor, "rule create_table_statement3");
		RewriteRuleSubtreeStream stream_create_table_statement2 = new RewriteRuleSubtreeStream(
				adaptor, "rule create_table_statement2");
		RewriteRuleSubtreeStream stream_create_table_statement1 = new RewriteRuleSubtreeStream(
				adaptor, "rule create_table_statement1");
		try {
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:279:23: (
			// create_table_statement1 -> create_table_statement1 |
			// create_table_statement2 -> create_table_statement2 |
			// create_table_statement3 -> create_table_statement3 )
			int alt89 = 3;
			alt89 = dfa89.predict(input);
			switch (alt89) {
			case 1:
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:280:2:
			// create_table_statement1
			{
				pushFollow(FOLLOW_create_table_statement1_in_create_table_statement1892);
				create_table_statement1233 = create_table_statement1();

				state._fsp--;
				if (state.failed)
					return retval;
				if (state.backtracking == 0)
					stream_create_table_statement1
							.add(create_table_statement1233.getTree());

				// AST REWRITE
				// elements: create_table_statement1
				// token labels:
				// rule labels: retval
				// token list labels:
				// rule list labels:
				// wildcard labels:
				if (state.backtracking == 0) {
					retval.tree = root_0;
					RewriteRuleSubtreeStream stream_retval = new RewriteRuleSubtreeStream(
							adaptor, "rule retval",
							retval != null ? retval.tree : null);

					root_0 = (Object) adaptor.nil();
					// 280:26: -> create_table_statement1
					{
						adaptor.addChild(root_0,
								stream_create_table_statement1.nextTree());

					}

					retval.tree = root_0;
				}
			}
				break;
			case 2:
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:281:4:
			// create_table_statement2
			{
				pushFollow(FOLLOW_create_table_statement2_in_create_table_statement1901);
				create_table_statement2234 = create_table_statement2();

				state._fsp--;
				if (state.failed)
					return retval;
				if (state.backtracking == 0)
					stream_create_table_statement2
							.add(create_table_statement2234.getTree());

				// AST REWRITE
				// elements: create_table_statement2
				// token labels:
				// rule labels: retval
				// token list labels:
				// rule list labels:
				// wildcard labels:
				if (state.backtracking == 0) {
					retval.tree = root_0;
					RewriteRuleSubtreeStream stream_retval = new RewriteRuleSubtreeStream(
							adaptor, "rule retval",
							retval != null ? retval.tree : null);

					root_0 = (Object) adaptor.nil();
					// 281:28: -> create_table_statement2
					{
						adaptor.addChild(root_0,
								stream_create_table_statement2.nextTree());

					}

					retval.tree = root_0;
				}
			}
				break;
			case 3:
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:282:4:
			// create_table_statement3
			{
				pushFollow(FOLLOW_create_table_statement3_in_create_table_statement1910);
				create_table_statement3235 = create_table_statement3();

				state._fsp--;
				if (state.failed)
					return retval;
				if (state.backtracking == 0)
					stream_create_table_statement3
							.add(create_table_statement3235.getTree());

				// AST REWRITE
				// elements: create_table_statement3
				// token labels:
				// rule labels: retval
				// token list labels:
				// rule list labels:
				// wildcard labels:
				if (state.backtracking == 0) {
					retval.tree = root_0;
					RewriteRuleSubtreeStream stream_retval = new RewriteRuleSubtreeStream(
							adaptor, "rule retval",
							retval != null ? retval.tree : null);

					root_0 = (Object) adaptor.nil();
					// 282:28: -> create_table_statement3
					{
						adaptor.addChild(root_0,
								stream_create_table_statement3.nextTree());

					}

					retval.tree = root_0;
				}
			}
				break;

			}
			retval.stop = input.LT(-1);

			if (state.backtracking == 0) {

				retval.tree = (Object) adaptor.rulePostProcessing(root_0);
				adaptor.setTokenBoundaries(retval.tree, retval.start,
						retval.stop);
			}
		} catch (RecognitionException re) {
			reportError(re);
			recover(input, re);
			retval.tree = (Object) adaptor.errorNode(input, retval.start,
					input.LT(-1), re);

		} finally {
		}
		return retval;
	}

	// $ANTLR end "create_table_statement"

	public static class create_table_statement1_return extends
			ParserRuleReturnScope {
		Object tree;

		public Object getTree() {
			return tree;
		}
	};

	// $ANTLR start "create_table_statement1"
	// C:\\Users\\grand\\Desktop\\another\\MySQL.g:285:1:
	// create_table_statement1 : CREATE ( TEMPORARY )? TABLE ( IF NOT_SYM EXISTS
	// )? table_name LPAREN create_definition ( COMMA create_definition )*
	// RPAREN ( table_options )? ( partition_options )? ( select_statement )? ->
	// ^( CREATE table_name ) ^( COLUMNS ( create_definition )+ ) (
	// select_statement )? ;
	public final MySQLParser.create_table_statement1_return create_table_statement1()
			throws RecognitionException {
		MySQLParser.create_table_statement1_return retval = new MySQLParser.create_table_statement1_return();
		retval.start = input.LT(1);

		Object root_0 = null;

		Token CREATE236 = null;
		Token TEMPORARY237 = null;
		Token TABLE238 = null;
		Token IF239 = null;
		Token NOT_SYM240 = null;
		Token EXISTS241 = null;
		Token LPAREN243 = null;
		Token COMMA245 = null;
		Token RPAREN247 = null;
		MySQLParser.table_name_return table_name242 = null;

		MySQLParser.create_definition_return create_definition244 = null;

		MySQLParser.create_definition_return create_definition246 = null;

		MySQLParser.table_options_return table_options248 = null;

		MySQLParser.partition_options_return partition_options249 = null;

		MySQLParser.select_statement_return select_statement250 = null;

		Object CREATE236_tree = null;
		Object TEMPORARY237_tree = null;
		Object TABLE238_tree = null;
		Object IF239_tree = null;
		Object NOT_SYM240_tree = null;
		Object EXISTS241_tree = null;
		Object LPAREN243_tree = null;
		Object COMMA245_tree = null;
		Object RPAREN247_tree = null;
		RewriteRuleTokenStream stream_TABLE = new RewriteRuleTokenStream(
				adaptor, "token TABLE");
		RewriteRuleTokenStream stream_RPAREN = new RewriteRuleTokenStream(
				adaptor, "token RPAREN");
		RewriteRuleTokenStream stream_CREATE = new RewriteRuleTokenStream(
				adaptor, "token CREATE");
		RewriteRuleTokenStream stream_EXISTS = new RewriteRuleTokenStream(
				adaptor, "token EXISTS");
		RewriteRuleTokenStream stream_COMMA = new RewriteRuleTokenStream(
				adaptor, "token COMMA");
		RewriteRuleTokenStream stream_TEMPORARY = new RewriteRuleTokenStream(
				adaptor, "token TEMPORARY");
		RewriteRuleTokenStream stream_NOT_SYM = new RewriteRuleTokenStream(
				adaptor, "token NOT_SYM");
		RewriteRuleTokenStream stream_LPAREN = new RewriteRuleTokenStream(
				adaptor, "token LPAREN");
		RewriteRuleTokenStream stream_IF = new RewriteRuleTokenStream(adaptor,
				"token IF");
		RewriteRuleSubtreeStream stream_table_name = new RewriteRuleSubtreeStream(
				adaptor, "rule table_name");
		RewriteRuleSubtreeStream stream_table_options = new RewriteRuleSubtreeStream(
				adaptor, "rule table_options");
		RewriteRuleSubtreeStream stream_select_statement = new RewriteRuleSubtreeStream(
				adaptor, "rule select_statement");
		RewriteRuleSubtreeStream stream_create_definition = new RewriteRuleSubtreeStream(
				adaptor, "rule create_definition");
		RewriteRuleSubtreeStream stream_partition_options = new RewriteRuleSubtreeStream(
				adaptor, "rule partition_options");
		try {
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:285:24: ( CREATE (
			// TEMPORARY )? TABLE ( IF NOT_SYM EXISTS )? table_name LPAREN
			// create_definition ( COMMA create_definition )* RPAREN (
			// table_options )? ( partition_options )? ( select_statement )? ->
			// ^( CREATE table_name ) ^( COLUMNS ( create_definition )+ ) (
			// select_statement )? )
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:286:2: CREATE (
			// TEMPORARY )? TABLE ( IF NOT_SYM EXISTS )? table_name LPAREN
			// create_definition ( COMMA create_definition )* RPAREN (
			// table_options )? ( partition_options )? ( select_statement )?
			{
				CREATE236 = (Token) match(input, CREATE,
						FOLLOW_CREATE_in_create_table_statement11924);
				if (state.failed)
					return retval;
				if (state.backtracking == 0)
					stream_CREATE.add(CREATE236);

				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:286:9: (
				// TEMPORARY )?
				int alt90 = 2;
				int LA90_0 = input.LA(1);

				if ((LA90_0 == TEMPORARY)) {
					alt90 = 1;
				}
				switch (alt90) {
				case 1:
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:286:10: TEMPORARY
				{
					TEMPORARY237 = (Token) match(input, TEMPORARY,
							FOLLOW_TEMPORARY_in_create_table_statement11927);
					if (state.failed)
						return retval;
					if (state.backtracking == 0)
						stream_TEMPORARY.add(TEMPORARY237);

				}
					break;

				}

				TABLE238 = (Token) match(input, TABLE,
						FOLLOW_TABLE_in_create_table_statement11931);
				if (state.failed)
					return retval;
				if (state.backtracking == 0)
					stream_TABLE.add(TABLE238);

				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:286:28: ( IF
				// NOT_SYM EXISTS )?
				int alt91 = 2;
				int LA91_0 = input.LA(1);

				if ((LA91_0 == IF)) {
					alt91 = 1;
				}
				switch (alt91) {
				case 1:
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:286:29: IF
				// NOT_SYM EXISTS
				{
					IF239 = (Token) match(input, IF,
							FOLLOW_IF_in_create_table_statement11934);
					if (state.failed)
						return retval;
					if (state.backtracking == 0)
						stream_IF.add(IF239);

					NOT_SYM240 = (Token) match(input, NOT_SYM,
							FOLLOW_NOT_SYM_in_create_table_statement11936);
					if (state.failed)
						return retval;
					if (state.backtracking == 0)
						stream_NOT_SYM.add(NOT_SYM240);

					EXISTS241 = (Token) match(input, EXISTS,
							FOLLOW_EXISTS_in_create_table_statement11938);
					if (state.failed)
						return retval;
					if (state.backtracking == 0)
						stream_EXISTS.add(EXISTS241);

				}
					break;

				}

				pushFollow(FOLLOW_table_name_in_create_table_statement11942);
				table_name242 = table_name();

				state._fsp--;
				if (state.failed)
					return retval;
				if (state.backtracking == 0)
					stream_table_name.add(table_name242.getTree());
				LPAREN243 = (Token) match(input, LPAREN,
						FOLLOW_LPAREN_in_create_table_statement11945);
				if (state.failed)
					return retval;
				if (state.backtracking == 0)
					stream_LPAREN.add(LPAREN243);

				pushFollow(FOLLOW_create_definition_in_create_table_statement11947);
				create_definition244 = create_definition();

				state._fsp--;
				if (state.failed)
					return retval;
				if (state.backtracking == 0)
					stream_create_definition
							.add(create_definition244.getTree());
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:287:27: ( COMMA
				// create_definition )*
				loop92: do {
					int alt92 = 2;
					int LA92_0 = input.LA(1);

					if ((LA92_0 == COMMA)) {
						alt92 = 1;
					}

					switch (alt92) {
					case 1:
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:287:28: COMMA
					// create_definition
					{
						COMMA245 = (Token) match(input, COMMA,
								FOLLOW_COMMA_in_create_table_statement11950);
						if (state.failed)
							return retval;
						if (state.backtracking == 0)
							stream_COMMA.add(COMMA245);

						pushFollow(FOLLOW_create_definition_in_create_table_statement11952);
						create_definition246 = create_definition();

						state._fsp--;
						if (state.failed)
							return retval;
						if (state.backtracking == 0)
							stream_create_definition.add(create_definition246
									.getTree());

					}
						break;

					default:
						break loop92;
					}
				} while (true);

				RPAREN247 = (Token) match(input, RPAREN,
						FOLLOW_RPAREN_in_create_table_statement11956);
				if (state.failed)
					return retval;
				if (state.backtracking == 0)
					stream_RPAREN.add(RPAREN247);

				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:288:2: (
				// table_options )?
				int alt93 = 2;
				int LA93_0 = input.LA(1);

				if ((LA93_0 == UNION_SYM
						|| LA93_0 == DEFAULT
						|| LA93_0 == INDEX_SYM
						|| (LA93_0 >= AUTO_INCREMENT && LA93_0 <= COMMENT_SYM)
						|| (LA93_0 >= CHARACTER_SYM && LA93_0 <= COLLATE_SYM)
						|| (LA93_0 >= ENGINE_SYM && LA93_0 <= DATA_SYM)
						|| (LA93_0 >= DELAY_KEY_WRITE_SYM && LA93_0 <= INSERT_METHOD)
						|| (LA93_0 >= KEY_BLOCK_SIZE && LA93_0 <= ROW_FORMAT_SYM) || (LA93_0 >= STATS_AUTO_RECALC && LA93_0 <= STATS_PERSISTENT))) {
					alt93 = 1;
				}
				switch (alt93) {
				case 1:
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:288:3:
				// table_options
				{
					pushFollow(FOLLOW_table_options_in_create_table_statement11960);
					table_options248 = table_options();

					state._fsp--;
					if (state.failed)
						return retval;
					if (state.backtracking == 0)
						stream_table_options.add(table_options248.getTree());

				}
					break;

				}

				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:289:2: (
				// partition_options )?
				int alt94 = 2;
				int LA94_0 = input.LA(1);

				if ((LA94_0 == PARTITION_SYM)) {
					alt94 = 1;
				}
				switch (alt94) {
				case 1:
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:289:3:
				// partition_options
				{
					pushFollow(FOLLOW_partition_options_in_create_table_statement11966);
					partition_options249 = partition_options();

					state._fsp--;
					if (state.failed)
						return retval;
					if (state.backtracking == 0)
						stream_partition_options.add(partition_options249
								.getTree());

				}
					break;

				}

				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:290:2: (
				// select_statement )?
				int alt95 = 2;
				int LA95_0 = input.LA(1);

				if ((LA95_0 == SELECT)) {
					alt95 = 1;
				}
				switch (alt95) {
				case 1:
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:290:3:
				// select_statement
				{
					pushFollow(FOLLOW_select_statement_in_create_table_statement11972);
					select_statement250 = select_statement();

					state._fsp--;
					if (state.failed)
						return retval;
					if (state.backtracking == 0)
						stream_select_statement.add(select_statement250
								.getTree());

				}
					break;

				}

				// AST REWRITE
				// elements: select_statement, CREATE, create_definition,
				// table_name
				// token labels:
				// rule labels: retval
				// token list labels:
				// rule list labels:
				// wildcard labels:
				if (state.backtracking == 0) {
					retval.tree = root_0;
					RewriteRuleSubtreeStream stream_retval = new RewriteRuleSubtreeStream(
							adaptor, "rule retval",
							retval != null ? retval.tree : null);

					root_0 = (Object) adaptor.nil();
					// 290:22: -> ^( CREATE table_name ) ^( COLUMNS (
					// create_definition )+ ) ( select_statement )?
					{
						// C:\\Users\\grand\\Desktop\\another\\MySQL.g:290:24:
						// ^( CREATE table_name )
						{
							Object root_1 = (Object) adaptor.nil();
							root_1 = (Object) adaptor.becomeRoot(
									stream_CREATE.nextNode(), root_1);

							adaptor.addChild(root_1,
									stream_table_name.nextTree());

							adaptor.addChild(root_0, root_1);
						}
						// C:\\Users\\grand\\Desktop\\another\\MySQL.g:290:45:
						// ^( COLUMNS ( create_definition )+ )
						{
							Object root_1 = (Object) adaptor.nil();
							root_1 = (Object) adaptor
									.becomeRoot((Object) adaptor.create(
											COLUMNS, "COLUMNS"), root_1);

							if (!(stream_create_definition.hasNext())) {
								throw new RewriteEarlyExitException();
							}
							while (stream_create_definition.hasNext()) {
								adaptor.addChild(root_1,
										stream_create_definition.nextTree());

							}
							stream_create_definition.reset();

							adaptor.addChild(root_0, root_1);
						}
						// C:\\Users\\grand\\Desktop\\another\\MySQL.g:290:75: (
						// select_statement )?
						if (stream_select_statement.hasNext()) {
							adaptor.addChild(root_0,
									stream_select_statement.nextTree());

						}
						stream_select_statement.reset();

					}

					retval.tree = root_0;
				}
			}

			retval.stop = input.LT(-1);

			if (state.backtracking == 0) {

				retval.tree = (Object) adaptor.rulePostProcessing(root_0);
				adaptor.setTokenBoundaries(retval.tree, retval.start,
						retval.stop);
			}
		} catch (RecognitionException re) {
			reportError(re);
			recover(input, re);
			retval.tree = (Object) adaptor.errorNode(input, retval.start,
					input.LT(-1), re);

		} finally {
		}
		return retval;
	}

	// $ANTLR end "create_table_statement1"

	public static class create_table_statement2_return extends
			ParserRuleReturnScope {
		Object tree;

		public Object getTree() {
			return tree;
		}
	};

	// $ANTLR start "create_table_statement2"
	// C:\\Users\\grand\\Desktop\\another\\MySQL.g:293:1:
	// create_table_statement2 : CREATE ( TEMPORARY )? TABLE ( IF NOT_SYM EXISTS
	// )? table_name ( table_options )? ( partition_options )? select_statement
	// -> ^( CREATE table_name ) select_statement ;
	public final MySQLParser.create_table_statement2_return create_table_statement2()
			throws RecognitionException {
		MySQLParser.create_table_statement2_return retval = new MySQLParser.create_table_statement2_return();
		retval.start = input.LT(1);

		Object root_0 = null;

		Token CREATE251 = null;
		Token TEMPORARY252 = null;
		Token TABLE253 = null;
		Token IF254 = null;
		Token NOT_SYM255 = null;
		Token EXISTS256 = null;
		MySQLParser.table_name_return table_name257 = null;

		MySQLParser.table_options_return table_options258 = null;

		MySQLParser.partition_options_return partition_options259 = null;

		MySQLParser.select_statement_return select_statement260 = null;

		Object CREATE251_tree = null;
		Object TEMPORARY252_tree = null;
		Object TABLE253_tree = null;
		Object IF254_tree = null;
		Object NOT_SYM255_tree = null;
		Object EXISTS256_tree = null;
		RewriteRuleTokenStream stream_TABLE = new RewriteRuleTokenStream(
				adaptor, "token TABLE");
		RewriteRuleTokenStream stream_CREATE = new RewriteRuleTokenStream(
				adaptor, "token CREATE");
		RewriteRuleTokenStream stream_EXISTS = new RewriteRuleTokenStream(
				adaptor, "token EXISTS");
		RewriteRuleTokenStream stream_TEMPORARY = new RewriteRuleTokenStream(
				adaptor, "token TEMPORARY");
		RewriteRuleTokenStream stream_NOT_SYM = new RewriteRuleTokenStream(
				adaptor, "token NOT_SYM");
		RewriteRuleTokenStream stream_IF = new RewriteRuleTokenStream(adaptor,
				"token IF");
		RewriteRuleSubtreeStream stream_table_name = new RewriteRuleSubtreeStream(
				adaptor, "rule table_name");
		RewriteRuleSubtreeStream stream_table_options = new RewriteRuleSubtreeStream(
				adaptor, "rule table_options");
		RewriteRuleSubtreeStream stream_select_statement = new RewriteRuleSubtreeStream(
				adaptor, "rule select_statement");
		RewriteRuleSubtreeStream stream_partition_options = new RewriteRuleSubtreeStream(
				adaptor, "rule partition_options");
		try {
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:293:24: ( CREATE (
			// TEMPORARY )? TABLE ( IF NOT_SYM EXISTS )? table_name (
			// table_options )? ( partition_options )? select_statement -> ^(
			// CREATE table_name ) select_statement )
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:294:2: CREATE (
			// TEMPORARY )? TABLE ( IF NOT_SYM EXISTS )? table_name (
			// table_options )? ( partition_options )? select_statement
			{
				CREATE251 = (Token) match(input, CREATE,
						FOLLOW_CREATE_in_create_table_statement22002);
				if (state.failed)
					return retval;
				if (state.backtracking == 0)
					stream_CREATE.add(CREATE251);

				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:294:9: (
				// TEMPORARY )?
				int alt96 = 2;
				int LA96_0 = input.LA(1);

				if ((LA96_0 == TEMPORARY)) {
					alt96 = 1;
				}
				switch (alt96) {
				case 1:
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:294:10: TEMPORARY
				{
					TEMPORARY252 = (Token) match(input, TEMPORARY,
							FOLLOW_TEMPORARY_in_create_table_statement22005);
					if (state.failed)
						return retval;
					if (state.backtracking == 0)
						stream_TEMPORARY.add(TEMPORARY252);

				}
					break;

				}

				TABLE253 = (Token) match(input, TABLE,
						FOLLOW_TABLE_in_create_table_statement22009);
				if (state.failed)
					return retval;
				if (state.backtracking == 0)
					stream_TABLE.add(TABLE253);

				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:294:28: ( IF
				// NOT_SYM EXISTS )?
				int alt97 = 2;
				int LA97_0 = input.LA(1);

				if ((LA97_0 == IF)) {
					alt97 = 1;
				}
				switch (alt97) {
				case 1:
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:294:29: IF
				// NOT_SYM EXISTS
				{
					IF254 = (Token) match(input, IF,
							FOLLOW_IF_in_create_table_statement22012);
					if (state.failed)
						return retval;
					if (state.backtracking == 0)
						stream_IF.add(IF254);

					NOT_SYM255 = (Token) match(input, NOT_SYM,
							FOLLOW_NOT_SYM_in_create_table_statement22014);
					if (state.failed)
						return retval;
					if (state.backtracking == 0)
						stream_NOT_SYM.add(NOT_SYM255);

					EXISTS256 = (Token) match(input, EXISTS,
							FOLLOW_EXISTS_in_create_table_statement22016);
					if (state.failed)
						return retval;
					if (state.backtracking == 0)
						stream_EXISTS.add(EXISTS256);

				}
					break;

				}

				pushFollow(FOLLOW_table_name_in_create_table_statement22020);
				table_name257 = table_name();

				state._fsp--;
				if (state.failed)
					return retval;
				if (state.backtracking == 0)
					stream_table_name.add(table_name257.getTree());
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:295:2: (
				// table_options )?
				int alt98 = 2;
				int LA98_0 = input.LA(1);

				if ((LA98_0 == UNION_SYM
						|| LA98_0 == DEFAULT
						|| LA98_0 == INDEX_SYM
						|| (LA98_0 >= AUTO_INCREMENT && LA98_0 <= COMMENT_SYM)
						|| (LA98_0 >= CHARACTER_SYM && LA98_0 <= COLLATE_SYM)
						|| (LA98_0 >= ENGINE_SYM && LA98_0 <= DATA_SYM)
						|| (LA98_0 >= DELAY_KEY_WRITE_SYM && LA98_0 <= INSERT_METHOD)
						|| (LA98_0 >= KEY_BLOCK_SIZE && LA98_0 <= ROW_FORMAT_SYM) || (LA98_0 >= STATS_AUTO_RECALC && LA98_0 <= STATS_PERSISTENT))) {
					alt98 = 1;
				}
				switch (alt98) {
				case 1:
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:295:3:
				// table_options
				{
					pushFollow(FOLLOW_table_options_in_create_table_statement22024);
					table_options258 = table_options();

					state._fsp--;
					if (state.failed)
						return retval;
					if (state.backtracking == 0)
						stream_table_options.add(table_options258.getTree());

				}
					break;

				}

				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:296:2: (
				// partition_options )?
				int alt99 = 2;
				int LA99_0 = input.LA(1);

				if ((LA99_0 == PARTITION_SYM)) {
					alt99 = 1;
				}
				switch (alt99) {
				case 1:
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:296:3:
				// partition_options
				{
					pushFollow(FOLLOW_partition_options_in_create_table_statement22030);
					partition_options259 = partition_options();

					state._fsp--;
					if (state.failed)
						return retval;
					if (state.backtracking == 0)
						stream_partition_options.add(partition_options259
								.getTree());

				}
					break;

				}

				pushFollow(FOLLOW_select_statement_in_create_table_statement22035);
				select_statement260 = select_statement();

				state._fsp--;
				if (state.failed)
					return retval;
				if (state.backtracking == 0)
					stream_select_statement.add(select_statement260.getTree());

				// AST REWRITE
				// elements: select_statement, table_name, CREATE
				// token labels:
				// rule labels: retval
				// token list labels:
				// rule list labels:
				// wildcard labels:
				if (state.backtracking == 0) {
					retval.tree = root_0;
					RewriteRuleSubtreeStream stream_retval = new RewriteRuleSubtreeStream(
							adaptor, "rule retval",
							retval != null ? retval.tree : null);

					root_0 = (Object) adaptor.nil();
					// 297:19: -> ^( CREATE table_name ) select_statement
					{
						// C:\\Users\\grand\\Desktop\\another\\MySQL.g:297:21:
						// ^( CREATE table_name )
						{
							Object root_1 = (Object) adaptor.nil();
							root_1 = (Object) adaptor.becomeRoot(
									stream_CREATE.nextNode(), root_1);

							adaptor.addChild(root_1,
									stream_table_name.nextTree());

							adaptor.addChild(root_0, root_1);
						}
						adaptor.addChild(root_0,
								stream_select_statement.nextTree());

					}

					retval.tree = root_0;
				}
			}

			retval.stop = input.LT(-1);

			if (state.backtracking == 0) {

				retval.tree = (Object) adaptor.rulePostProcessing(root_0);
				adaptor.setTokenBoundaries(retval.tree, retval.start,
						retval.stop);
			}
		} catch (RecognitionException re) {
			reportError(re);
			recover(input, re);
			retval.tree = (Object) adaptor.errorNode(input, retval.start,
					input.LT(-1), re);

		} finally {
		}
		return retval;
	}

	// $ANTLR end "create_table_statement2"

	public static class create_table_statement3_return extends
			ParserRuleReturnScope {
		Object tree;

		public Object getTree() {
			return tree;
		}
	};

	// $ANTLR start "create_table_statement3"
	// C:\\Users\\grand\\Desktop\\another\\MySQL.g:300:1:
	// create_table_statement3 : CREATE ( TEMPORARY )? TABLE ( IF NOT_SYM EXISTS
	// )? table_name ( ( LIKE_SYM table_name ) | ( LPAREN LIKE_SYM table_name
	// RPAREN ) ) -> ^( CREATE table_name ) ^( LIKE_SYM table_name ) ;
	public final MySQLParser.create_table_statement3_return create_table_statement3()
			throws RecognitionException {
		MySQLParser.create_table_statement3_return retval = new MySQLParser.create_table_statement3_return();
		retval.start = input.LT(1);

		Object root_0 = null;

		Token CREATE261 = null;
		Token TEMPORARY262 = null;
		Token TABLE263 = null;
		Token IF264 = null;
		Token NOT_SYM265 = null;
		Token EXISTS266 = null;
		Token LIKE_SYM268 = null;
		Token LPAREN270 = null;
		Token LIKE_SYM271 = null;
		Token RPAREN273 = null;
		MySQLParser.table_name_return table_name267 = null;

		MySQLParser.table_name_return table_name269 = null;

		MySQLParser.table_name_return table_name272 = null;

		Object CREATE261_tree = null;
		Object TEMPORARY262_tree = null;
		Object TABLE263_tree = null;
		Object IF264_tree = null;
		Object NOT_SYM265_tree = null;
		Object EXISTS266_tree = null;
		Object LIKE_SYM268_tree = null;
		Object LPAREN270_tree = null;
		Object LIKE_SYM271_tree = null;
		Object RPAREN273_tree = null;
		RewriteRuleTokenStream stream_TABLE = new RewriteRuleTokenStream(
				adaptor, "token TABLE");
		RewriteRuleTokenStream stream_RPAREN = new RewriteRuleTokenStream(
				adaptor, "token RPAREN");
		RewriteRuleTokenStream stream_CREATE = new RewriteRuleTokenStream(
				adaptor, "token CREATE");
		RewriteRuleTokenStream stream_EXISTS = new RewriteRuleTokenStream(
				adaptor, "token EXISTS");
		RewriteRuleTokenStream stream_TEMPORARY = new RewriteRuleTokenStream(
				adaptor, "token TEMPORARY");
		RewriteRuleTokenStream stream_NOT_SYM = new RewriteRuleTokenStream(
				adaptor, "token NOT_SYM");
		RewriteRuleTokenStream stream_LPAREN = new RewriteRuleTokenStream(
				adaptor, "token LPAREN");
		RewriteRuleTokenStream stream_IF = new RewriteRuleTokenStream(adaptor,
				"token IF");
		RewriteRuleTokenStream stream_LIKE_SYM = new RewriteRuleTokenStream(
				adaptor, "token LIKE_SYM");
		RewriteRuleSubtreeStream stream_table_name = new RewriteRuleSubtreeStream(
				adaptor, "rule table_name");
		try {
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:300:24: ( CREATE (
			// TEMPORARY )? TABLE ( IF NOT_SYM EXISTS )? table_name ( ( LIKE_SYM
			// table_name ) | ( LPAREN LIKE_SYM table_name RPAREN ) ) -> ^(
			// CREATE table_name ) ^( LIKE_SYM table_name ) )
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:301:2: CREATE (
			// TEMPORARY )? TABLE ( IF NOT_SYM EXISTS )? table_name ( ( LIKE_SYM
			// table_name ) | ( LPAREN LIKE_SYM table_name RPAREN ) )
			{
				CREATE261 = (Token) match(input, CREATE,
						FOLLOW_CREATE_in_create_table_statement32053);
				if (state.failed)
					return retval;
				if (state.backtracking == 0)
					stream_CREATE.add(CREATE261);

				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:301:9: (
				// TEMPORARY )?
				int alt100 = 2;
				int LA100_0 = input.LA(1);

				if ((LA100_0 == TEMPORARY)) {
					alt100 = 1;
				}
				switch (alt100) {
				case 1:
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:301:10: TEMPORARY
				{
					TEMPORARY262 = (Token) match(input, TEMPORARY,
							FOLLOW_TEMPORARY_in_create_table_statement32056);
					if (state.failed)
						return retval;
					if (state.backtracking == 0)
						stream_TEMPORARY.add(TEMPORARY262);

				}
					break;

				}

				TABLE263 = (Token) match(input, TABLE,
						FOLLOW_TABLE_in_create_table_statement32060);
				if (state.failed)
					return retval;
				if (state.backtracking == 0)
					stream_TABLE.add(TABLE263);

				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:301:28: ( IF
				// NOT_SYM EXISTS )?
				int alt101 = 2;
				int LA101_0 = input.LA(1);

				if ((LA101_0 == IF)) {
					alt101 = 1;
				}
				switch (alt101) {
				case 1:
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:301:29: IF
				// NOT_SYM EXISTS
				{
					IF264 = (Token) match(input, IF,
							FOLLOW_IF_in_create_table_statement32063);
					if (state.failed)
						return retval;
					if (state.backtracking == 0)
						stream_IF.add(IF264);

					NOT_SYM265 = (Token) match(input, NOT_SYM,
							FOLLOW_NOT_SYM_in_create_table_statement32065);
					if (state.failed)
						return retval;
					if (state.backtracking == 0)
						stream_NOT_SYM.add(NOT_SYM265);

					EXISTS266 = (Token) match(input, EXISTS,
							FOLLOW_EXISTS_in_create_table_statement32067);
					if (state.failed)
						return retval;
					if (state.backtracking == 0)
						stream_EXISTS.add(EXISTS266);

				}
					break;

				}

				pushFollow(FOLLOW_table_name_in_create_table_statement32071);
				table_name267 = table_name();

				state._fsp--;
				if (state.failed)
					return retval;
				if (state.backtracking == 0)
					stream_table_name.add(table_name267.getTree());
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:302:2: ( (
				// LIKE_SYM table_name ) | ( LPAREN LIKE_SYM table_name RPAREN )
				// )
				int alt102 = 2;
				int LA102_0 = input.LA(1);

				if ((LA102_0 == LIKE_SYM)) {
					alt102 = 1;
				} else if ((LA102_0 == LPAREN)) {
					alt102 = 2;
				} else {
					if (state.backtracking > 0) {
						state.failed = true;
						return retval;
					}
					NoViableAltException nvae = new NoViableAltException("",
							102, 0, input);

					throw nvae;
				}
				switch (alt102) {
				case 1:
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:302:4: ( LIKE_SYM
				// table_name )
				{
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:302:4: (
					// LIKE_SYM table_name )
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:302:5:
					// LIKE_SYM table_name
					{
						LIKE_SYM268 = (Token) match(input, LIKE_SYM,
								FOLLOW_LIKE_SYM_in_create_table_statement32077);
						if (state.failed)
							return retval;
						if (state.backtracking == 0)
							stream_LIKE_SYM.add(LIKE_SYM268);

						pushFollow(FOLLOW_table_name_in_create_table_statement32079);
						table_name269 = table_name();

						state._fsp--;
						if (state.failed)
							return retval;
						if (state.backtracking == 0)
							stream_table_name.add(table_name269.getTree());

					}

				}
					break;
				case 2:
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:302:29: ( LPAREN
				// LIKE_SYM table_name RPAREN )
				{
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:302:29: (
					// LPAREN LIKE_SYM table_name RPAREN )
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:302:30:
					// LPAREN LIKE_SYM table_name RPAREN
					{
						LPAREN270 = (Token) match(input, LPAREN,
								FOLLOW_LPAREN_in_create_table_statement32086);
						if (state.failed)
							return retval;
						if (state.backtracking == 0)
							stream_LPAREN.add(LPAREN270);

						LIKE_SYM271 = (Token) match(input, LIKE_SYM,
								FOLLOW_LIKE_SYM_in_create_table_statement32088);
						if (state.failed)
							return retval;
						if (state.backtracking == 0)
							stream_LIKE_SYM.add(LIKE_SYM271);

						pushFollow(FOLLOW_table_name_in_create_table_statement32090);
						table_name272 = table_name();

						state._fsp--;
						if (state.failed)
							return retval;
						if (state.backtracking == 0)
							stream_table_name.add(table_name272.getTree());
						RPAREN273 = (Token) match(input, RPAREN,
								FOLLOW_RPAREN_in_create_table_statement32092);
						if (state.failed)
							return retval;
						if (state.backtracking == 0)
							stream_RPAREN.add(RPAREN273);

					}

				}
					break;

				}

				// AST REWRITE
				// elements: CREATE, LIKE_SYM, table_name, table_name
				// token labels:
				// rule labels: retval
				// token list labels:
				// rule list labels:
				// wildcard labels:
				if (state.backtracking == 0) {
					retval.tree = root_0;
					RewriteRuleSubtreeStream stream_retval = new RewriteRuleSubtreeStream(
							adaptor, "rule retval",
							retval != null ? retval.tree : null);

					root_0 = (Object) adaptor.nil();
					// 302:67: -> ^( CREATE table_name ) ^( LIKE_SYM table_name
					// )
					{
						// C:\\Users\\grand\\Desktop\\another\\MySQL.g:302:69:
						// ^( CREATE table_name )
						{
							Object root_1 = (Object) adaptor.nil();
							root_1 = (Object) adaptor.becomeRoot(
									stream_CREATE.nextNode(), root_1);

							adaptor.addChild(root_1,
									stream_table_name.nextTree());

							adaptor.addChild(root_0, root_1);
						}
						// C:\\Users\\grand\\Desktop\\another\\MySQL.g:302:90:
						// ^( LIKE_SYM table_name )
						{
							Object root_1 = (Object) adaptor.nil();
							root_1 = (Object) adaptor.becomeRoot(
									stream_LIKE_SYM.nextNode(), root_1);

							adaptor.addChild(root_1,
									stream_table_name.nextTree());

							adaptor.addChild(root_0, root_1);
						}

					}

					retval.tree = root_0;
				}
			}

			retval.stop = input.LT(-1);

			if (state.backtracking == 0) {

				retval.tree = (Object) adaptor.rulePostProcessing(root_0);
				adaptor.setTokenBoundaries(retval.tree, retval.start,
						retval.stop);
			}
		} catch (RecognitionException re) {
			reportError(re);
			recover(input, re);
			retval.tree = (Object) adaptor.errorNode(input, retval.start,
					input.LT(-1), re);

		} finally {
		}
		return retval;
	}

	// $ANTLR end "create_table_statement3"

	public static class create_definition_return extends ParserRuleReturnScope {
		Object tree;

		public Object getTree() {
			return tree;
		}
	};

	// $ANTLR start "create_definition"
	// C:\\Users\\grand\\Desktop\\another\\MySQL.g:305:1: create_definition : (
	// ( column_name column_definition ) -> ^( COLUMN_SPEC column_name
	// column_definition ) | ( ( CONSTRAINT ( constraint_symbol_name )? )?
	// PRIMARY_SYM KEY_SYM ( index_type )? LPAREN index_column_name ( COMMA
	// index_column_name )* RPAREN ( index_option )* ) | ( ( INDEX_SYM | KEY_SYM
	// ) ( index_name )? ( index_type )? LPAREN index_column_name ( COMMA
	// index_column_name )* RPAREN ( index_option )* ) | ( ( CONSTRAINT (
	// constraint_symbol_name )? )? UNIQUE_SYM ( INDEX_SYM | KEY_SYM )? (
	// index_name )? ( index_type )? LPAREN index_column_name ( COMMA
	// index_column_name )* RPAREN ( index_option )* ) | ( ( FULLTEXT_SYM |
	// SPATIAL_SYM ) ( INDEX_SYM | KEY_SYM )? ( index_name )? LPAREN
	// index_column_name ( COMMA index_column_name )* RPAREN ( index_option )* )
	// | ( ( CONSTRAINT ( constraint_symbol_name )? )? FOREIGN KEY_SYM (
	// index_name )? LPAREN index_column_name ( COMMA index_column_name )*
	// RPAREN reference_definition ) | ( CHECK_SYM LPAREN expression RPAREN ) );
	public final MySQLParser.create_definition_return create_definition()
			throws RecognitionException {
		MySQLParser.create_definition_return retval = new MySQLParser.create_definition_return();
		retval.start = input.LT(1);

		Object root_0 = null;

		Token CONSTRAINT276 = null;
		Token PRIMARY_SYM278 = null;
		Token KEY_SYM279 = null;
		Token LPAREN281 = null;
		Token COMMA283 = null;
		Token RPAREN285 = null;
		Token set287 = null;
		Token LPAREN290 = null;
		Token COMMA292 = null;
		Token RPAREN294 = null;
		Token CONSTRAINT296 = null;
		Token UNIQUE_SYM298 = null;
		Token set299 = null;
		Token LPAREN302 = null;
		Token COMMA304 = null;
		Token RPAREN306 = null;
		Token set308 = null;
		Token set309 = null;
		Token LPAREN311 = null;
		Token COMMA313 = null;
		Token RPAREN315 = null;
		Token CONSTRAINT317 = null;
		Token FOREIGN319 = null;
		Token KEY_SYM320 = null;
		Token LPAREN322 = null;
		Token COMMA324 = null;
		Token RPAREN326 = null;
		Token CHECK_SYM328 = null;
		Token LPAREN329 = null;
		Token RPAREN331 = null;
		MySQLParser.column_name_return column_name274 = null;

		MySQLParser.column_definition_return column_definition275 = null;

		MySQLParser.constraint_symbol_name_return constraint_symbol_name277 = null;

		MySQLParser.index_type_return index_type280 = null;

		MySQLParser.index_column_name_return index_column_name282 = null;

		MySQLParser.index_column_name_return index_column_name284 = null;

		MySQLParser.index_option_return index_option286 = null;

		MySQLParser.index_name_return index_name288 = null;

		MySQLParser.index_type_return index_type289 = null;

		MySQLParser.index_column_name_return index_column_name291 = null;

		MySQLParser.index_column_name_return index_column_name293 = null;

		MySQLParser.index_option_return index_option295 = null;

		MySQLParser.constraint_symbol_name_return constraint_symbol_name297 = null;

		MySQLParser.index_name_return index_name300 = null;

		MySQLParser.index_type_return index_type301 = null;

		MySQLParser.index_column_name_return index_column_name303 = null;

		MySQLParser.index_column_name_return index_column_name305 = null;

		MySQLParser.index_option_return index_option307 = null;

		MySQLParser.index_name_return index_name310 = null;

		MySQLParser.index_column_name_return index_column_name312 = null;

		MySQLParser.index_column_name_return index_column_name314 = null;

		MySQLParser.index_option_return index_option316 = null;

		MySQLParser.constraint_symbol_name_return constraint_symbol_name318 = null;

		MySQLParser.index_name_return index_name321 = null;

		MySQLParser.index_column_name_return index_column_name323 = null;

		MySQLParser.index_column_name_return index_column_name325 = null;

		MySQLParser.reference_definition_return reference_definition327 = null;

		MySQLParser.expression_return expression330 = null;

		Object CONSTRAINT276_tree = null;
		Object PRIMARY_SYM278_tree = null;
		Object KEY_SYM279_tree = null;
		Object LPAREN281_tree = null;
		Object COMMA283_tree = null;
		Object RPAREN285_tree = null;
		Object set287_tree = null;
		Object LPAREN290_tree = null;
		Object COMMA292_tree = null;
		Object RPAREN294_tree = null;
		Object CONSTRAINT296_tree = null;
		Object UNIQUE_SYM298_tree = null;
		Object set299_tree = null;
		Object LPAREN302_tree = null;
		Object COMMA304_tree = null;
		Object RPAREN306_tree = null;
		Object set308_tree = null;
		Object set309_tree = null;
		Object LPAREN311_tree = null;
		Object COMMA313_tree = null;
		Object RPAREN315_tree = null;
		Object CONSTRAINT317_tree = null;
		Object FOREIGN319_tree = null;
		Object KEY_SYM320_tree = null;
		Object LPAREN322_tree = null;
		Object COMMA324_tree = null;
		Object RPAREN326_tree = null;
		Object CHECK_SYM328_tree = null;
		Object LPAREN329_tree = null;
		Object RPAREN331_tree = null;
		RewriteRuleSubtreeStream stream_column_definition = new RewriteRuleSubtreeStream(
				adaptor, "rule column_definition");
		RewriteRuleSubtreeStream stream_column_name = new RewriteRuleSubtreeStream(
				adaptor, "rule column_name");
		try {
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:305:18: ( (
			// column_name column_definition ) -> ^( COLUMN_SPEC column_name
			// column_definition ) | ( ( CONSTRAINT ( constraint_symbol_name )?
			// )? PRIMARY_SYM KEY_SYM ( index_type )? LPAREN index_column_name (
			// COMMA index_column_name )* RPAREN ( index_option )* ) | ( (
			// INDEX_SYM | KEY_SYM ) ( index_name )? ( index_type )? LPAREN
			// index_column_name ( COMMA index_column_name )* RPAREN (
			// index_option )* ) | ( ( CONSTRAINT ( constraint_symbol_name )? )?
			// UNIQUE_SYM ( INDEX_SYM | KEY_SYM )? ( index_name )? ( index_type
			// )? LPAREN index_column_name ( COMMA index_column_name )* RPAREN (
			// index_option )* ) | ( ( FULLTEXT_SYM | SPATIAL_SYM ) ( INDEX_SYM
			// | KEY_SYM )? ( index_name )? LPAREN index_column_name ( COMMA
			// index_column_name )* RPAREN ( index_option )* ) | ( ( CONSTRAINT
			// ( constraint_symbol_name )? )? FOREIGN KEY_SYM ( index_name )?
			// LPAREN index_column_name ( COMMA index_column_name )* RPAREN
			// reference_definition ) | ( CHECK_SYM LPAREN expression RPAREN ) )
			int alt127 = 7;
			alt127 = dfa127.predict(input);
			switch (alt127) {
			case 1:
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:306:4: ( column_name
			// column_definition )
			{
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:306:4: (
				// column_name column_definition )
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:306:7:
				// column_name column_definition
				{
					pushFollow(FOLLOW_column_name_in_create_definition2122);
					column_name274 = column_name();

					state._fsp--;
					if (state.failed)
						return retval;
					if (state.backtracking == 0)
						stream_column_name.add(column_name274.getTree());
					pushFollow(FOLLOW_column_definition_in_create_definition2124);
					column_definition275 = column_definition();

					state._fsp--;
					if (state.failed)
						return retval;
					if (state.backtracking == 0)
						stream_column_definition.add(column_definition275
								.getTree());

				}

				// AST REWRITE
				// elements: column_definition, column_name
				// token labels:
				// rule labels: retval
				// token list labels:
				// rule list labels:
				// wildcard labels:
				if (state.backtracking == 0) {
					retval.tree = root_0;
					RewriteRuleSubtreeStream stream_retval = new RewriteRuleSubtreeStream(
							adaptor, "rule retval",
							retval != null ? retval.tree : null);

					root_0 = (Object) adaptor.nil();
					// 306:39: -> ^( COLUMN_SPEC column_name column_definition )
					{
						// C:\\Users\\grand\\Desktop\\another\\MySQL.g:306:42:
						// ^( COLUMN_SPEC column_name column_definition )
						{
							Object root_1 = (Object) adaptor.nil();
							root_1 = (Object) adaptor.becomeRoot(
									(Object) adaptor.create(COLUMN_SPEC,
											"COLUMN_SPEC"), root_1);

							adaptor.addChild(root_1,
									stream_column_name.nextTree());
							adaptor.addChild(root_1,
									stream_column_definition.nextTree());

							adaptor.addChild(root_0, root_1);
						}

					}

					retval.tree = root_0;
				}
			}
				break;
			case 2:
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:307:4: ( ( CONSTRAINT
			// ( constraint_symbol_name )? )? PRIMARY_SYM KEY_SYM ( index_type
			// )? LPAREN index_column_name ( COMMA index_column_name )* RPAREN (
			// index_option )* )
			{
				root_0 = (Object) adaptor.nil();

				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:307:4: ( (
				// CONSTRAINT ( constraint_symbol_name )? )? PRIMARY_SYM KEY_SYM
				// ( index_type )? LPAREN index_column_name ( COMMA
				// index_column_name )* RPAREN ( index_option )* )
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:307:7: (
				// CONSTRAINT ( constraint_symbol_name )? )? PRIMARY_SYM KEY_SYM
				// ( index_type )? LPAREN index_column_name ( COMMA
				// index_column_name )* RPAREN ( index_option )*
				{
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:307:7: (
					// CONSTRAINT ( constraint_symbol_name )? )?
					int alt104 = 2;
					int LA104_0 = input.LA(1);

					if ((LA104_0 == CONSTRAINT)) {
						alt104 = 1;
					}
					switch (alt104) {
					case 1:
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:307:8:
					// CONSTRAINT ( constraint_symbol_name )?
					{
						CONSTRAINT276 = (Token) match(input, CONSTRAINT,
								FOLLOW_CONSTRAINT_in_create_definition2145);
						if (state.failed)
							return retval;
						if (state.backtracking == 0) {
							CONSTRAINT276_tree = (Object) adaptor
									.create(CONSTRAINT276);
							adaptor.addChild(root_0, CONSTRAINT276_tree);
						}
						// C:\\Users\\grand\\Desktop\\another\\MySQL.g:307:19: (
						// constraint_symbol_name )?
						int alt103 = 2;
						int LA103_0 = input.LA(1);

						if ((LA103_0 == ID)) {
							alt103 = 1;
						}
						switch (alt103) {
						case 1:
						// C:\\Users\\grand\\Desktop\\another\\MySQL.g:307:20:
						// constraint_symbol_name
						{
							pushFollow(FOLLOW_constraint_symbol_name_in_create_definition2148);
							constraint_symbol_name277 = constraint_symbol_name();

							state._fsp--;
							if (state.failed)
								return retval;
							if (state.backtracking == 0)
								adaptor.addChild(root_0,
										constraint_symbol_name277.getTree());

						}
							break;

						}

					}
						break;

					}

					PRIMARY_SYM278 = (Token) match(input, PRIMARY_SYM,
							FOLLOW_PRIMARY_SYM_in_create_definition2154);
					if (state.failed)
						return retval;
					if (state.backtracking == 0) {
						PRIMARY_SYM278_tree = (Object) adaptor
								.create(PRIMARY_SYM278);
						adaptor.addChild(root_0, PRIMARY_SYM278_tree);
					}
					KEY_SYM279 = (Token) match(input, KEY_SYM,
							FOLLOW_KEY_SYM_in_create_definition2156);
					if (state.failed)
						return retval;
					if (state.backtracking == 0) {
						KEY_SYM279_tree = (Object) adaptor.create(KEY_SYM279);
						adaptor.addChild(root_0, KEY_SYM279_tree);
					}
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:307:67: (
					// index_type )?
					int alt105 = 2;
					int LA105_0 = input.LA(1);

					if ((LA105_0 == USING_SYM)) {
						alt105 = 1;
					}
					switch (alt105) {
					case 1:
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:307:68:
					// index_type
					{
						pushFollow(FOLLOW_index_type_in_create_definition2159);
						index_type280 = index_type();

						state._fsp--;
						if (state.failed)
							return retval;
						if (state.backtracking == 0)
							adaptor.addChild(root_0, index_type280.getTree());

					}
						break;

					}

					LPAREN281 = (Token) match(input, LPAREN,
							FOLLOW_LPAREN_in_create_definition2163);
					if (state.failed)
						return retval;
					if (state.backtracking == 0) {
						LPAREN281_tree = (Object) adaptor.create(LPAREN281);
						adaptor.addChild(root_0, LPAREN281_tree);
					}
					pushFollow(FOLLOW_index_column_name_in_create_definition2165);
					index_column_name282 = index_column_name();

					state._fsp--;
					if (state.failed)
						return retval;
					if (state.backtracking == 0)
						adaptor.addChild(root_0, index_column_name282.getTree());
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:307:106: (
					// COMMA index_column_name )*
					loop106: do {
						int alt106 = 2;
						int LA106_0 = input.LA(1);

						if ((LA106_0 == COMMA)) {
							alt106 = 1;
						}

						switch (alt106) {
						case 1:
						// C:\\Users\\grand\\Desktop\\another\\MySQL.g:307:107:
						// COMMA index_column_name
						{
							COMMA283 = (Token) match(input, COMMA,
									FOLLOW_COMMA_in_create_definition2168);
							if (state.failed)
								return retval;
							if (state.backtracking == 0) {
								COMMA283_tree = (Object) adaptor
										.create(COMMA283);
								adaptor.addChild(root_0, COMMA283_tree);
							}
							pushFollow(FOLLOW_index_column_name_in_create_definition2170);
							index_column_name284 = index_column_name();

							state._fsp--;
							if (state.failed)
								return retval;
							if (state.backtracking == 0)
								adaptor.addChild(root_0,
										index_column_name284.getTree());

						}
							break;

						default:
							break loop106;
						}
					} while (true);

					RPAREN285 = (Token) match(input, RPAREN,
							FOLLOW_RPAREN_in_create_definition2174);
					if (state.failed)
						return retval;
					if (state.backtracking == 0) {
						RPAREN285_tree = (Object) adaptor.create(RPAREN285);
						adaptor.addChild(root_0, RPAREN285_tree);
					}
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:307:140: (
					// index_option )*
					loop107: do {
						int alt107 = 2;
						int LA107_0 = input.LA(1);

						if ((LA107_0 == WITH || LA107_0 == USING_SYM
								|| LA107_0 == COMMENT_SYM || LA107_0 == KEY_BLOCK_SIZE)) {
							alt107 = 1;
						}

						switch (alt107) {
						case 1:
						// C:\\Users\\grand\\Desktop\\another\\MySQL.g:307:141:
						// index_option
						{
							pushFollow(FOLLOW_index_option_in_create_definition2177);
							index_option286 = index_option();

							state._fsp--;
							if (state.failed)
								return retval;
							if (state.backtracking == 0)
								adaptor.addChild(root_0,
										index_option286.getTree());

						}
							break;

						default:
							break loop107;
						}
					} while (true);

				}

			}
				break;
			case 3:
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:308:4: ( ( INDEX_SYM
			// | KEY_SYM ) ( index_name )? ( index_type )? LPAREN
			// index_column_name ( COMMA index_column_name )* RPAREN (
			// index_option )* )
			{
				root_0 = (Object) adaptor.nil();

				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:308:4: ( (
				// INDEX_SYM | KEY_SYM ) ( index_name )? ( index_type )? LPAREN
				// index_column_name ( COMMA index_column_name )* RPAREN (
				// index_option )* )
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:308:7: (
				// INDEX_SYM | KEY_SYM ) ( index_name )? ( index_type )? LPAREN
				// index_column_name ( COMMA index_column_name )* RPAREN (
				// index_option )*
				{
					set287 = (Token) input.LT(1);
					if (input.LA(1) == KEY_SYM || input.LA(1) == INDEX_SYM) {
						input.consume();
						if (state.backtracking == 0)
							adaptor.addChild(root_0,
									(Object) adaptor.create(set287));
						state.errorRecovery = false;
						state.failed = false;
					} else {
						if (state.backtracking > 0) {
							state.failed = true;
							return retval;
						}
						MismatchedSetException mse = new MismatchedSetException(
								null, input);
						throw mse;
					}

					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:308:27: (
					// index_name )?
					int alt108 = 2;
					int LA108_0 = input.LA(1);

					if ((LA108_0 == ID)) {
						alt108 = 1;
					}
					switch (alt108) {
					case 1:
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:308:28:
					// index_name
					{
						pushFollow(FOLLOW_index_name_in_create_definition2198);
						index_name288 = index_name();

						state._fsp--;
						if (state.failed)
							return retval;
						if (state.backtracking == 0)
							adaptor.addChild(root_0, index_name288.getTree());

					}
						break;

					}

					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:308:41: (
					// index_type )?
					int alt109 = 2;
					int LA109_0 = input.LA(1);

					if ((LA109_0 == USING_SYM)) {
						alt109 = 1;
					}
					switch (alt109) {
					case 1:
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:308:42:
					// index_type
					{
						pushFollow(FOLLOW_index_type_in_create_definition2203);
						index_type289 = index_type();

						state._fsp--;
						if (state.failed)
							return retval;
						if (state.backtracking == 0)
							adaptor.addChild(root_0, index_type289.getTree());

					}
						break;

					}

					LPAREN290 = (Token) match(input, LPAREN,
							FOLLOW_LPAREN_in_create_definition2207);
					if (state.failed)
						return retval;
					if (state.backtracking == 0) {
						LPAREN290_tree = (Object) adaptor.create(LPAREN290);
						adaptor.addChild(root_0, LPAREN290_tree);
					}
					pushFollow(FOLLOW_index_column_name_in_create_definition2209);
					index_column_name291 = index_column_name();

					state._fsp--;
					if (state.failed)
						return retval;
					if (state.backtracking == 0)
						adaptor.addChild(root_0, index_column_name291.getTree());
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:308:80: (
					// COMMA index_column_name )*
					loop110: do {
						int alt110 = 2;
						int LA110_0 = input.LA(1);

						if ((LA110_0 == COMMA)) {
							alt110 = 1;
						}

						switch (alt110) {
						case 1:
						// C:\\Users\\grand\\Desktop\\another\\MySQL.g:308:81:
						// COMMA index_column_name
						{
							COMMA292 = (Token) match(input, COMMA,
									FOLLOW_COMMA_in_create_definition2212);
							if (state.failed)
								return retval;
							if (state.backtracking == 0) {
								COMMA292_tree = (Object) adaptor
										.create(COMMA292);
								adaptor.addChild(root_0, COMMA292_tree);
							}
							pushFollow(FOLLOW_index_column_name_in_create_definition2214);
							index_column_name293 = index_column_name();

							state._fsp--;
							if (state.failed)
								return retval;
							if (state.backtracking == 0)
								adaptor.addChild(root_0,
										index_column_name293.getTree());

						}
							break;

						default:
							break loop110;
						}
					} while (true);

					RPAREN294 = (Token) match(input, RPAREN,
							FOLLOW_RPAREN_in_create_definition2218);
					if (state.failed)
						return retval;
					if (state.backtracking == 0) {
						RPAREN294_tree = (Object) adaptor.create(RPAREN294);
						adaptor.addChild(root_0, RPAREN294_tree);
					}
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:308:114: (
					// index_option )*
					loop111: do {
						int alt111 = 2;
						int LA111_0 = input.LA(1);

						if ((LA111_0 == WITH || LA111_0 == USING_SYM
								|| LA111_0 == COMMENT_SYM || LA111_0 == KEY_BLOCK_SIZE)) {
							alt111 = 1;
						}

						switch (alt111) {
						case 1:
						// C:\\Users\\grand\\Desktop\\another\\MySQL.g:308:115:
						// index_option
						{
							pushFollow(FOLLOW_index_option_in_create_definition2221);
							index_option295 = index_option();

							state._fsp--;
							if (state.failed)
								return retval;
							if (state.backtracking == 0)
								adaptor.addChild(root_0,
										index_option295.getTree());

						}
							break;

						default:
							break loop111;
						}
					} while (true);

				}

			}
				break;
			case 4:
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:309:4: ( ( CONSTRAINT
			// ( constraint_symbol_name )? )? UNIQUE_SYM ( INDEX_SYM | KEY_SYM
			// )? ( index_name )? ( index_type )? LPAREN index_column_name (
			// COMMA index_column_name )* RPAREN ( index_option )* )
			{
				root_0 = (Object) adaptor.nil();

				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:309:4: ( (
				// CONSTRAINT ( constraint_symbol_name )? )? UNIQUE_SYM (
				// INDEX_SYM | KEY_SYM )? ( index_name )? ( index_type )? LPAREN
				// index_column_name ( COMMA index_column_name )* RPAREN (
				// index_option )* )
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:309:7: (
				// CONSTRAINT ( constraint_symbol_name )? )? UNIQUE_SYM (
				// INDEX_SYM | KEY_SYM )? ( index_name )? ( index_type )? LPAREN
				// index_column_name ( COMMA index_column_name )* RPAREN (
				// index_option )*
				{
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:309:7: (
					// CONSTRAINT ( constraint_symbol_name )? )?
					int alt113 = 2;
					int LA113_0 = input.LA(1);

					if ((LA113_0 == CONSTRAINT)) {
						alt113 = 1;
					}
					switch (alt113) {
					case 1:
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:309:8:
					// CONSTRAINT ( constraint_symbol_name )?
					{
						CONSTRAINT296 = (Token) match(input, CONSTRAINT,
								FOLLOW_CONSTRAINT_in_create_definition2236);
						if (state.failed)
							return retval;
						if (state.backtracking == 0) {
							CONSTRAINT296_tree = (Object) adaptor
									.create(CONSTRAINT296);
							adaptor.addChild(root_0, CONSTRAINT296_tree);
						}
						// C:\\Users\\grand\\Desktop\\another\\MySQL.g:309:19: (
						// constraint_symbol_name )?
						int alt112 = 2;
						int LA112_0 = input.LA(1);

						if ((LA112_0 == ID)) {
							alt112 = 1;
						}
						switch (alt112) {
						case 1:
						// C:\\Users\\grand\\Desktop\\another\\MySQL.g:309:20:
						// constraint_symbol_name
						{
							pushFollow(FOLLOW_constraint_symbol_name_in_create_definition2239);
							constraint_symbol_name297 = constraint_symbol_name();

							state._fsp--;
							if (state.failed)
								return retval;
							if (state.backtracking == 0)
								adaptor.addChild(root_0,
										constraint_symbol_name297.getTree());

						}
							break;

						}

					}
						break;

					}

					UNIQUE_SYM298 = (Token) match(input, UNIQUE_SYM,
							FOLLOW_UNIQUE_SYM_in_create_definition2245);
					if (state.failed)
						return retval;
					if (state.backtracking == 0) {
						UNIQUE_SYM298_tree = (Object) adaptor
								.create(UNIQUE_SYM298);
						adaptor.addChild(root_0, UNIQUE_SYM298_tree);
					}
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:309:58: (
					// INDEX_SYM | KEY_SYM )?
					int alt114 = 2;
					int LA114_0 = input.LA(1);

					if ((LA114_0 == KEY_SYM || LA114_0 == INDEX_SYM)) {
						alt114 = 1;
					}
					switch (alt114) {
					case 1:
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:
					{
						set299 = (Token) input.LT(1);
						if (input.LA(1) == KEY_SYM || input.LA(1) == INDEX_SYM) {
							input.consume();
							if (state.backtracking == 0)
								adaptor.addChild(root_0,
										(Object) adaptor.create(set299));
							state.errorRecovery = false;
							state.failed = false;
						} else {
							if (state.backtracking > 0) {
								state.failed = true;
								return retval;
							}
							MismatchedSetException mse = new MismatchedSetException(
									null, input);
							throw mse;
						}

					}
						break;

					}

					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:309:79: (
					// index_name )?
					int alt115 = 2;
					int LA115_0 = input.LA(1);

					if ((LA115_0 == ID)) {
						alt115 = 1;
					}
					switch (alt115) {
					case 1:
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:309:80:
					// index_name
					{
						pushFollow(FOLLOW_index_name_in_create_definition2255);
						index_name300 = index_name();

						state._fsp--;
						if (state.failed)
							return retval;
						if (state.backtracking == 0)
							adaptor.addChild(root_0, index_name300.getTree());

					}
						break;

					}

					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:309:93: (
					// index_type )?
					int alt116 = 2;
					int LA116_0 = input.LA(1);

					if ((LA116_0 == USING_SYM)) {
						alt116 = 1;
					}
					switch (alt116) {
					case 1:
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:309:94:
					// index_type
					{
						pushFollow(FOLLOW_index_type_in_create_definition2260);
						index_type301 = index_type();

						state._fsp--;
						if (state.failed)
							return retval;
						if (state.backtracking == 0)
							adaptor.addChild(root_0, index_type301.getTree());

					}
						break;

					}

					LPAREN302 = (Token) match(input, LPAREN,
							FOLLOW_LPAREN_in_create_definition2264);
					if (state.failed)
						return retval;
					if (state.backtracking == 0) {
						LPAREN302_tree = (Object) adaptor.create(LPAREN302);
						adaptor.addChild(root_0, LPAREN302_tree);
					}
					pushFollow(FOLLOW_index_column_name_in_create_definition2266);
					index_column_name303 = index_column_name();

					state._fsp--;
					if (state.failed)
						return retval;
					if (state.backtracking == 0)
						adaptor.addChild(root_0, index_column_name303.getTree());
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:309:132: (
					// COMMA index_column_name )*
					loop117: do {
						int alt117 = 2;
						int LA117_0 = input.LA(1);

						if ((LA117_0 == COMMA)) {
							alt117 = 1;
						}

						switch (alt117) {
						case 1:
						// C:\\Users\\grand\\Desktop\\another\\MySQL.g:309:133:
						// COMMA index_column_name
						{
							COMMA304 = (Token) match(input, COMMA,
									FOLLOW_COMMA_in_create_definition2269);
							if (state.failed)
								return retval;
							if (state.backtracking == 0) {
								COMMA304_tree = (Object) adaptor
										.create(COMMA304);
								adaptor.addChild(root_0, COMMA304_tree);
							}
							pushFollow(FOLLOW_index_column_name_in_create_definition2271);
							index_column_name305 = index_column_name();

							state._fsp--;
							if (state.failed)
								return retval;
							if (state.backtracking == 0)
								adaptor.addChild(root_0,
										index_column_name305.getTree());

						}
							break;

						default:
							break loop117;
						}
					} while (true);

					RPAREN306 = (Token) match(input, RPAREN,
							FOLLOW_RPAREN_in_create_definition2275);
					if (state.failed)
						return retval;
					if (state.backtracking == 0) {
						RPAREN306_tree = (Object) adaptor.create(RPAREN306);
						adaptor.addChild(root_0, RPAREN306_tree);
					}
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:309:166: (
					// index_option )*
					loop118: do {
						int alt118 = 2;
						int LA118_0 = input.LA(1);

						if ((LA118_0 == WITH || LA118_0 == USING_SYM
								|| LA118_0 == COMMENT_SYM || LA118_0 == KEY_BLOCK_SIZE)) {
							alt118 = 1;
						}

						switch (alt118) {
						case 1:
						// C:\\Users\\grand\\Desktop\\another\\MySQL.g:309:167:
						// index_option
						{
							pushFollow(FOLLOW_index_option_in_create_definition2278);
							index_option307 = index_option();

							state._fsp--;
							if (state.failed)
								return retval;
							if (state.backtracking == 0)
								adaptor.addChild(root_0,
										index_option307.getTree());

						}
							break;

						default:
							break loop118;
						}
					} while (true);

				}

			}
				break;
			case 5:
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:310:4: ( (
			// FULLTEXT_SYM | SPATIAL_SYM ) ( INDEX_SYM | KEY_SYM )? (
			// index_name )? LPAREN index_column_name ( COMMA index_column_name
			// )* RPAREN ( index_option )* )
			{
				root_0 = (Object) adaptor.nil();

				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:310:4: ( (
				// FULLTEXT_SYM | SPATIAL_SYM ) ( INDEX_SYM | KEY_SYM )? (
				// index_name )? LPAREN index_column_name ( COMMA
				// index_column_name )* RPAREN ( index_option )* )
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:310:7: (
				// FULLTEXT_SYM | SPATIAL_SYM ) ( INDEX_SYM | KEY_SYM )? (
				// index_name )? LPAREN index_column_name ( COMMA
				// index_column_name )* RPAREN ( index_option )*
				{
					set308 = (Token) input.LT(1);
					if ((input.LA(1) >= FULLTEXT_SYM && input.LA(1) <= SPATIAL_SYM)) {
						input.consume();
						if (state.backtracking == 0)
							adaptor.addChild(root_0,
									(Object) adaptor.create(set308));
						state.errorRecovery = false;
						state.failed = false;
					} else {
						if (state.backtracking > 0) {
							state.failed = true;
							return retval;
						}
						MismatchedSetException mse = new MismatchedSetException(
								null, input);
						throw mse;
					}

					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:310:34: (
					// INDEX_SYM | KEY_SYM )?
					int alt119 = 2;
					int LA119_0 = input.LA(1);

					if ((LA119_0 == KEY_SYM || LA119_0 == INDEX_SYM)) {
						alt119 = 1;
					}
					switch (alt119) {
					case 1:
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:
					{
						set309 = (Token) input.LT(1);
						if (input.LA(1) == KEY_SYM || input.LA(1) == INDEX_SYM) {
							input.consume();
							if (state.backtracking == 0)
								adaptor.addChild(root_0,
										(Object) adaptor.create(set309));
							state.errorRecovery = false;
							state.failed = false;
						} else {
							if (state.backtracking > 0) {
								state.failed = true;
								return retval;
							}
							MismatchedSetException mse = new MismatchedSetException(
									null, input);
							throw mse;
						}

					}
						break;

					}

					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:310:55: (
					// index_name )?
					int alt120 = 2;
					int LA120_0 = input.LA(1);

					if ((LA120_0 == ID)) {
						alt120 = 1;
					}
					switch (alt120) {
					case 1:
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:310:56:
					// index_name
					{
						pushFollow(FOLLOW_index_name_in_create_definition2305);
						index_name310 = index_name();

						state._fsp--;
						if (state.failed)
							return retval;
						if (state.backtracking == 0)
							adaptor.addChild(root_0, index_name310.getTree());

					}
						break;

					}

					LPAREN311 = (Token) match(input, LPAREN,
							FOLLOW_LPAREN_in_create_definition2309);
					if (state.failed)
						return retval;
					if (state.backtracking == 0) {
						LPAREN311_tree = (Object) adaptor.create(LPAREN311);
						adaptor.addChild(root_0, LPAREN311_tree);
					}
					pushFollow(FOLLOW_index_column_name_in_create_definition2311);
					index_column_name312 = index_column_name();

					state._fsp--;
					if (state.failed)
						return retval;
					if (state.backtracking == 0)
						adaptor.addChild(root_0, index_column_name312.getTree());
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:310:94: (
					// COMMA index_column_name )*
					loop121: do {
						int alt121 = 2;
						int LA121_0 = input.LA(1);

						if ((LA121_0 == COMMA)) {
							alt121 = 1;
						}

						switch (alt121) {
						case 1:
						// C:\\Users\\grand\\Desktop\\another\\MySQL.g:310:95:
						// COMMA index_column_name
						{
							COMMA313 = (Token) match(input, COMMA,
									FOLLOW_COMMA_in_create_definition2314);
							if (state.failed)
								return retval;
							if (state.backtracking == 0) {
								COMMA313_tree = (Object) adaptor
										.create(COMMA313);
								adaptor.addChild(root_0, COMMA313_tree);
							}
							pushFollow(FOLLOW_index_column_name_in_create_definition2316);
							index_column_name314 = index_column_name();

							state._fsp--;
							if (state.failed)
								return retval;
							if (state.backtracking == 0)
								adaptor.addChild(root_0,
										index_column_name314.getTree());

						}
							break;

						default:
							break loop121;
						}
					} while (true);

					RPAREN315 = (Token) match(input, RPAREN,
							FOLLOW_RPAREN_in_create_definition2320);
					if (state.failed)
						return retval;
					if (state.backtracking == 0) {
						RPAREN315_tree = (Object) adaptor.create(RPAREN315);
						adaptor.addChild(root_0, RPAREN315_tree);
					}
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:310:128: (
					// index_option )*
					loop122: do {
						int alt122 = 2;
						int LA122_0 = input.LA(1);

						if ((LA122_0 == WITH || LA122_0 == USING_SYM
								|| LA122_0 == COMMENT_SYM || LA122_0 == KEY_BLOCK_SIZE)) {
							alt122 = 1;
						}

						switch (alt122) {
						case 1:
						// C:\\Users\\grand\\Desktop\\another\\MySQL.g:310:129:
						// index_option
						{
							pushFollow(FOLLOW_index_option_in_create_definition2323);
							index_option316 = index_option();

							state._fsp--;
							if (state.failed)
								return retval;
							if (state.backtracking == 0)
								adaptor.addChild(root_0,
										index_option316.getTree());

						}
							break;

						default:
							break loop122;
						}
					} while (true);

				}

			}
				break;
			case 6:
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:311:4: ( ( CONSTRAINT
			// ( constraint_symbol_name )? )? FOREIGN KEY_SYM ( index_name )?
			// LPAREN index_column_name ( COMMA index_column_name )* RPAREN
			// reference_definition )
			{
				root_0 = (Object) adaptor.nil();

				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:311:4: ( (
				// CONSTRAINT ( constraint_symbol_name )? )? FOREIGN KEY_SYM (
				// index_name )? LPAREN index_column_name ( COMMA
				// index_column_name )* RPAREN reference_definition )
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:311:7: (
				// CONSTRAINT ( constraint_symbol_name )? )? FOREIGN KEY_SYM (
				// index_name )? LPAREN index_column_name ( COMMA
				// index_column_name )* RPAREN reference_definition
				{
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:311:7: (
					// CONSTRAINT ( constraint_symbol_name )? )?
					int alt124 = 2;
					int LA124_0 = input.LA(1);

					if ((LA124_0 == CONSTRAINT)) {
						alt124 = 1;
					}
					switch (alt124) {
					case 1:
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:311:8:
					// CONSTRAINT ( constraint_symbol_name )?
					{
						CONSTRAINT317 = (Token) match(input, CONSTRAINT,
								FOLLOW_CONSTRAINT_in_create_definition2337);
						if (state.failed)
							return retval;
						if (state.backtracking == 0) {
							CONSTRAINT317_tree = (Object) adaptor
									.create(CONSTRAINT317);
							adaptor.addChild(root_0, CONSTRAINT317_tree);
						}
						// C:\\Users\\grand\\Desktop\\another\\MySQL.g:311:19: (
						// constraint_symbol_name )?
						int alt123 = 2;
						int LA123_0 = input.LA(1);

						if ((LA123_0 == ID)) {
							alt123 = 1;
						}
						switch (alt123) {
						case 1:
						// C:\\Users\\grand\\Desktop\\another\\MySQL.g:311:20:
						// constraint_symbol_name
						{
							pushFollow(FOLLOW_constraint_symbol_name_in_create_definition2340);
							constraint_symbol_name318 = constraint_symbol_name();

							state._fsp--;
							if (state.failed)
								return retval;
							if (state.backtracking == 0)
								adaptor.addChild(root_0,
										constraint_symbol_name318.getTree());

						}
							break;

						}

					}
						break;

					}

					FOREIGN319 = (Token) match(input, FOREIGN,
							FOLLOW_FOREIGN_in_create_definition2346);
					if (state.failed)
						return retval;
					if (state.backtracking == 0) {
						FOREIGN319_tree = (Object) adaptor.create(FOREIGN319);
						adaptor.addChild(root_0, FOREIGN319_tree);
					}
					KEY_SYM320 = (Token) match(input, KEY_SYM,
							FOLLOW_KEY_SYM_in_create_definition2348);
					if (state.failed)
						return retval;
					if (state.backtracking == 0) {
						KEY_SYM320_tree = (Object) adaptor.create(KEY_SYM320);
						adaptor.addChild(root_0, KEY_SYM320_tree);
					}
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:311:63: (
					// index_name )?
					int alt125 = 2;
					int LA125_0 = input.LA(1);

					if ((LA125_0 == ID)) {
						alt125 = 1;
					}
					switch (alt125) {
					case 1:
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:311:64:
					// index_name
					{
						pushFollow(FOLLOW_index_name_in_create_definition2351);
						index_name321 = index_name();

						state._fsp--;
						if (state.failed)
							return retval;
						if (state.backtracking == 0)
							adaptor.addChild(root_0, index_name321.getTree());

					}
						break;

					}

					LPAREN322 = (Token) match(input, LPAREN,
							FOLLOW_LPAREN_in_create_definition2355);
					if (state.failed)
						return retval;
					if (state.backtracking == 0) {
						LPAREN322_tree = (Object) adaptor.create(LPAREN322);
						adaptor.addChild(root_0, LPAREN322_tree);
					}
					pushFollow(FOLLOW_index_column_name_in_create_definition2357);
					index_column_name323 = index_column_name();

					state._fsp--;
					if (state.failed)
						return retval;
					if (state.backtracking == 0)
						adaptor.addChild(root_0, index_column_name323.getTree());
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:311:102: (
					// COMMA index_column_name )*
					loop126: do {
						int alt126 = 2;
						int LA126_0 = input.LA(1);

						if ((LA126_0 == COMMA)) {
							alt126 = 1;
						}

						switch (alt126) {
						case 1:
						// C:\\Users\\grand\\Desktop\\another\\MySQL.g:311:103:
						// COMMA index_column_name
						{
							COMMA324 = (Token) match(input, COMMA,
									FOLLOW_COMMA_in_create_definition2360);
							if (state.failed)
								return retval;
							if (state.backtracking == 0) {
								COMMA324_tree = (Object) adaptor
										.create(COMMA324);
								adaptor.addChild(root_0, COMMA324_tree);
							}
							pushFollow(FOLLOW_index_column_name_in_create_definition2362);
							index_column_name325 = index_column_name();

							state._fsp--;
							if (state.failed)
								return retval;
							if (state.backtracking == 0)
								adaptor.addChild(root_0,
										index_column_name325.getTree());

						}
							break;

						default:
							break loop126;
						}
					} while (true);

					RPAREN326 = (Token) match(input, RPAREN,
							FOLLOW_RPAREN_in_create_definition2366);
					if (state.failed)
						return retval;
					if (state.backtracking == 0) {
						RPAREN326_tree = (Object) adaptor.create(RPAREN326);
						adaptor.addChild(root_0, RPAREN326_tree);
					}
					pushFollow(FOLLOW_reference_definition_in_create_definition2368);
					reference_definition327 = reference_definition();

					state._fsp--;
					if (state.failed)
						return retval;
					if (state.backtracking == 0)
						adaptor.addChild(root_0,
								reference_definition327.getTree());

				}

			}
				break;
			case 7:
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:312:4: ( CHECK_SYM
			// LPAREN expression RPAREN )
			{
				root_0 = (Object) adaptor.nil();

				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:312:4: (
				// CHECK_SYM LPAREN expression RPAREN )
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:312:7: CHECK_SYM
				// LPAREN expression RPAREN
				{
					CHECK_SYM328 = (Token) match(input, CHECK_SYM,
							FOLLOW_CHECK_SYM_in_create_definition2379);
					if (state.failed)
						return retval;
					if (state.backtracking == 0) {
						CHECK_SYM328_tree = (Object) adaptor
								.create(CHECK_SYM328);
						adaptor.addChild(root_0, CHECK_SYM328_tree);
					}
					LPAREN329 = (Token) match(input, LPAREN,
							FOLLOW_LPAREN_in_create_definition2381);
					if (state.failed)
						return retval;
					if (state.backtracking == 0) {
						LPAREN329_tree = (Object) adaptor.create(LPAREN329);
						adaptor.addChild(root_0, LPAREN329_tree);
					}
					pushFollow(FOLLOW_expression_in_create_definition2383);
					expression330 = expression();

					state._fsp--;
					if (state.failed)
						return retval;
					if (state.backtracking == 0)
						adaptor.addChild(root_0, expression330.getTree());
					RPAREN331 = (Token) match(input, RPAREN,
							FOLLOW_RPAREN_in_create_definition2385);
					if (state.failed)
						return retval;
					if (state.backtracking == 0) {
						RPAREN331_tree = (Object) adaptor.create(RPAREN331);
						adaptor.addChild(root_0, RPAREN331_tree);
					}

				}

			}
				break;

			}
			retval.stop = input.LT(-1);

			if (state.backtracking == 0) {

				retval.tree = (Object) adaptor.rulePostProcessing(root_0);
				adaptor.setTokenBoundaries(retval.tree, retval.start,
						retval.stop);
			}
		} catch (RecognitionException re) {
			reportError(re);
			recover(input, re);
			retval.tree = (Object) adaptor.errorNode(input, retval.start,
					input.LT(-1), re);

		} finally {
		}
		return retval;
	}

	// $ANTLR end "create_definition"

	public static class column_definition_return extends ParserRuleReturnScope {
		Object tree;

		public Object getTree() {
			return tree;
		}
	};

	// $ANTLR start "column_definition"
	// C:\\Users\\grand\\Desktop\\another\\MySQL.g:315:1: column_definition :
	// column_data_type_header ( AUTO_INCREMENT )? ( ( UNIQUE_SYM ( KEY_SYM )? )
	// | ( PRIMARY_SYM ( KEY_SYM )? ) )? ( COMMENT_SYM TEXT_STRING )? (
	// COLUMN_FORMAT ( FIXED_SYM | DYNAMIC_SYM | DEFAULT ) )? (
	// reference_definition )? -> column_data_type_header ;
	public final MySQLParser.column_definition_return column_definition()
			throws RecognitionException {
		MySQLParser.column_definition_return retval = new MySQLParser.column_definition_return();
		retval.start = input.LT(1);

		Object root_0 = null;

		Token AUTO_INCREMENT333 = null;
		Token UNIQUE_SYM334 = null;
		Token KEY_SYM335 = null;
		Token PRIMARY_SYM336 = null;
		Token KEY_SYM337 = null;
		Token COMMENT_SYM338 = null;
		Token TEXT_STRING339 = null;
		Token COLUMN_FORMAT340 = null;
		Token FIXED_SYM341 = null;
		Token DYNAMIC_SYM342 = null;
		Token DEFAULT343 = null;
		MySQLParser.column_data_type_header_return column_data_type_header332 = null;

		MySQLParser.reference_definition_return reference_definition344 = null;

		Object AUTO_INCREMENT333_tree = null;
		Object UNIQUE_SYM334_tree = null;
		Object KEY_SYM335_tree = null;
		Object PRIMARY_SYM336_tree = null;
		Object KEY_SYM337_tree = null;
		Object COMMENT_SYM338_tree = null;
		Object TEXT_STRING339_tree = null;
		Object COLUMN_FORMAT340_tree = null;
		Object FIXED_SYM341_tree = null;
		Object DYNAMIC_SYM342_tree = null;
		Object DEFAULT343_tree = null;
		RewriteRuleTokenStream stream_AUTO_INCREMENT = new RewriteRuleTokenStream(
				adaptor, "token AUTO_INCREMENT");
		RewriteRuleTokenStream stream_COMMENT_SYM = new RewriteRuleTokenStream(
				adaptor, "token COMMENT_SYM");
		RewriteRuleTokenStream stream_TEXT_STRING = new RewriteRuleTokenStream(
				adaptor, "token TEXT_STRING");
		RewriteRuleTokenStream stream_COLUMN_FORMAT = new RewriteRuleTokenStream(
				adaptor, "token COLUMN_FORMAT");
		RewriteRuleTokenStream stream_DYNAMIC_SYM = new RewriteRuleTokenStream(
				adaptor, "token DYNAMIC_SYM");
		RewriteRuleTokenStream stream_FIXED_SYM = new RewriteRuleTokenStream(
				adaptor, "token FIXED_SYM");
		RewriteRuleTokenStream stream_KEY_SYM = new RewriteRuleTokenStream(
				adaptor, "token KEY_SYM");
		RewriteRuleTokenStream stream_UNIQUE_SYM = new RewriteRuleTokenStream(
				adaptor, "token UNIQUE_SYM");
		RewriteRuleTokenStream stream_PRIMARY_SYM = new RewriteRuleTokenStream(
				adaptor, "token PRIMARY_SYM");
		RewriteRuleTokenStream stream_DEFAULT = new RewriteRuleTokenStream(
				adaptor, "token DEFAULT");
		RewriteRuleSubtreeStream stream_column_data_type_header = new RewriteRuleSubtreeStream(
				adaptor, "rule column_data_type_header");
		RewriteRuleSubtreeStream stream_reference_definition = new RewriteRuleSubtreeStream(
				adaptor, "rule reference_definition");
		try {
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:315:18: (
			// column_data_type_header ( AUTO_INCREMENT )? ( ( UNIQUE_SYM (
			// KEY_SYM )? ) | ( PRIMARY_SYM ( KEY_SYM )? ) )? ( COMMENT_SYM
			// TEXT_STRING )? ( COLUMN_FORMAT ( FIXED_SYM | DYNAMIC_SYM |
			// DEFAULT ) )? ( reference_definition )? -> column_data_type_header
			// )
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:316:2:
			// column_data_type_header ( AUTO_INCREMENT )? ( ( UNIQUE_SYM (
			// KEY_SYM )? ) | ( PRIMARY_SYM ( KEY_SYM )? ) )? ( COMMENT_SYM
			// TEXT_STRING )? ( COLUMN_FORMAT ( FIXED_SYM | DYNAMIC_SYM |
			// DEFAULT ) )? ( reference_definition )?
			{
				pushFollow(FOLLOW_column_data_type_header_in_column_definition2399);
				column_data_type_header332 = column_data_type_header();

				state._fsp--;
				if (state.failed)
					return retval;
				if (state.backtracking == 0)
					stream_column_data_type_header
							.add(column_data_type_header332.getTree());
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:317:2: (
				// AUTO_INCREMENT )?
				int alt128 = 2;
				int LA128_0 = input.LA(1);

				if ((LA128_0 == AUTO_INCREMENT)) {
					alt128 = 1;
				}
				switch (alt128) {
				case 1:
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:317:3:
				// AUTO_INCREMENT
				{
					AUTO_INCREMENT333 = (Token) match(input, AUTO_INCREMENT,
							FOLLOW_AUTO_INCREMENT_in_column_definition2403);
					if (state.failed)
						return retval;
					if (state.backtracking == 0)
						stream_AUTO_INCREMENT.add(AUTO_INCREMENT333);

				}
					break;

				}

				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:317:20: ( (
				// UNIQUE_SYM ( KEY_SYM )? ) | ( PRIMARY_SYM ( KEY_SYM )? ) )?
				int alt131 = 3;
				int LA131_0 = input.LA(1);

				if ((LA131_0 == UNIQUE_SYM)) {
					alt131 = 1;
				} else if ((LA131_0 == PRIMARY_SYM)) {
					alt131 = 2;
				}
				switch (alt131) {
				case 1:
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:317:22: (
				// UNIQUE_SYM ( KEY_SYM )? )
				{
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:317:22: (
					// UNIQUE_SYM ( KEY_SYM )? )
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:317:23:
					// UNIQUE_SYM ( KEY_SYM )?
					{
						UNIQUE_SYM334 = (Token) match(input, UNIQUE_SYM,
								FOLLOW_UNIQUE_SYM_in_column_definition2410);
						if (state.failed)
							return retval;
						if (state.backtracking == 0)
							stream_UNIQUE_SYM.add(UNIQUE_SYM334);

						// C:\\Users\\grand\\Desktop\\another\\MySQL.g:317:34: (
						// KEY_SYM )?
						int alt129 = 2;
						int LA129_0 = input.LA(1);

						if ((LA129_0 == KEY_SYM)) {
							alt129 = 1;
						}
						switch (alt129) {
						case 1:
						// C:\\Users\\grand\\Desktop\\another\\MySQL.g:317:35:
						// KEY_SYM
						{
							KEY_SYM335 = (Token) match(input, KEY_SYM,
									FOLLOW_KEY_SYM_in_column_definition2413);
							if (state.failed)
								return retval;
							if (state.backtracking == 0)
								stream_KEY_SYM.add(KEY_SYM335);

						}
							break;

						}

					}

				}
					break;
				case 2:
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:317:48: (
				// PRIMARY_SYM ( KEY_SYM )? )
				{
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:317:48: (
					// PRIMARY_SYM ( KEY_SYM )? )
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:317:49:
					// PRIMARY_SYM ( KEY_SYM )?
					{
						PRIMARY_SYM336 = (Token) match(input, PRIMARY_SYM,
								FOLLOW_PRIMARY_SYM_in_column_definition2421);
						if (state.failed)
							return retval;
						if (state.backtracking == 0)
							stream_PRIMARY_SYM.add(PRIMARY_SYM336);

						// C:\\Users\\grand\\Desktop\\another\\MySQL.g:317:61: (
						// KEY_SYM )?
						int alt130 = 2;
						int LA130_0 = input.LA(1);

						if ((LA130_0 == KEY_SYM)) {
							alt130 = 1;
						}
						switch (alt130) {
						case 1:
						// C:\\Users\\grand\\Desktop\\another\\MySQL.g:317:62:
						// KEY_SYM
						{
							KEY_SYM337 = (Token) match(input, KEY_SYM,
									FOLLOW_KEY_SYM_in_column_definition2424);
							if (state.failed)
								return retval;
							if (state.backtracking == 0)
								stream_KEY_SYM.add(KEY_SYM337);

						}
							break;

						}

					}

				}
					break;

				}

				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:318:2: (
				// COMMENT_SYM TEXT_STRING )?
				int alt132 = 2;
				int LA132_0 = input.LA(1);

				if ((LA132_0 == COMMENT_SYM)) {
					alt132 = 1;
				}
				switch (alt132) {
				case 1:
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:318:3:
				// COMMENT_SYM TEXT_STRING
				{
					COMMENT_SYM338 = (Token) match(input, COMMENT_SYM,
							FOLLOW_COMMENT_SYM_in_column_definition2434);
					if (state.failed)
						return retval;
					if (state.backtracking == 0)
						stream_COMMENT_SYM.add(COMMENT_SYM338);

					TEXT_STRING339 = (Token) match(input, TEXT_STRING,
							FOLLOW_TEXT_STRING_in_column_definition2436);
					if (state.failed)
						return retval;
					if (state.backtracking == 0)
						stream_TEXT_STRING.add(TEXT_STRING339);

				}
					break;

				}

				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:319:2: (
				// COLUMN_FORMAT ( FIXED_SYM | DYNAMIC_SYM | DEFAULT ) )?
				int alt134 = 2;
				int LA134_0 = input.LA(1);

				if ((LA134_0 == COLUMN_FORMAT)) {
					alt134 = 1;
				}
				switch (alt134) {
				case 1:
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:319:3:
				// COLUMN_FORMAT ( FIXED_SYM | DYNAMIC_SYM | DEFAULT )
				{
					COLUMN_FORMAT340 = (Token) match(input, COLUMN_FORMAT,
							FOLLOW_COLUMN_FORMAT_in_column_definition2442);
					if (state.failed)
						return retval;
					if (state.backtracking == 0)
						stream_COLUMN_FORMAT.add(COLUMN_FORMAT340);

					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:319:17: (
					// FIXED_SYM | DYNAMIC_SYM | DEFAULT )
					int alt133 = 3;
					switch (input.LA(1)) {
					case FIXED_SYM: {
						alt133 = 1;
					}
						break;
					case DYNAMIC_SYM: {
						alt133 = 2;
					}
						break;
					case DEFAULT: {
						alt133 = 3;
					}
						break;
					default:
						if (state.backtracking > 0) {
							state.failed = true;
							return retval;
						}
						NoViableAltException nvae = new NoViableAltException(
								"", 133, 0, input);

						throw nvae;
					}

					switch (alt133) {
					case 1:
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:319:18:
					// FIXED_SYM
					{
						FIXED_SYM341 = (Token) match(input, FIXED_SYM,
								FOLLOW_FIXED_SYM_in_column_definition2445);
						if (state.failed)
							return retval;
						if (state.backtracking == 0)
							stream_FIXED_SYM.add(FIXED_SYM341);

					}
						break;
					case 2:
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:319:28:
					// DYNAMIC_SYM
					{
						DYNAMIC_SYM342 = (Token) match(input, DYNAMIC_SYM,
								FOLLOW_DYNAMIC_SYM_in_column_definition2447);
						if (state.failed)
							return retval;
						if (state.backtracking == 0)
							stream_DYNAMIC_SYM.add(DYNAMIC_SYM342);

					}
						break;
					case 3:
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:319:40:
					// DEFAULT
					{
						DEFAULT343 = (Token) match(input, DEFAULT,
								FOLLOW_DEFAULT_in_column_definition2449);
						if (state.failed)
							return retval;
						if (state.backtracking == 0)
							stream_DEFAULT.add(DEFAULT343);

					}
						break;

					}

				}
					break;

				}

				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:320:2: (
				// reference_definition )?
				int alt135 = 2;
				int LA135_0 = input.LA(1);

				if ((LA135_0 == REFERENCES)) {
					alt135 = 1;
				}
				switch (alt135) {
				case 1:
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:320:3:
				// reference_definition
				{
					pushFollow(FOLLOW_reference_definition_in_column_definition2456);
					reference_definition344 = reference_definition();

					state._fsp--;
					if (state.failed)
						return retval;
					if (state.backtracking == 0)
						stream_reference_definition.add(reference_definition344
								.getTree());

				}
					break;

				}

				// AST REWRITE
				// elements: column_data_type_header
				// token labels:
				// rule labels: retval
				// token list labels:
				// rule list labels:
				// wildcard labels:
				if (state.backtracking == 0) {
					retval.tree = root_0;
					RewriteRuleSubtreeStream stream_retval = new RewriteRuleSubtreeStream(
							adaptor, "rule retval",
							retval != null ? retval.tree : null);

					root_0 = (Object) adaptor.nil();
					// 320:26: -> column_data_type_header
					{
						adaptor.addChild(root_0,
								stream_column_data_type_header.nextTree());

					}

					retval.tree = root_0;
				}
			}

			retval.stop = input.LT(-1);

			if (state.backtracking == 0) {

				retval.tree = (Object) adaptor.rulePostProcessing(root_0);
				adaptor.setTokenBoundaries(retval.tree, retval.start,
						retval.stop);
			}
		} catch (RecognitionException re) {
			reportError(re);
			recover(input, re);
			retval.tree = (Object) adaptor.errorNode(input, retval.start,
					input.LT(-1), re);

		} finally {
		}
		return retval;
	}

	// $ANTLR end "column_definition"

	public static class null_or_notnull_return extends ParserRuleReturnScope {
		Object tree;

		public Object getTree() {
			return tree;
		}
	};

	// $ANTLR start "null_or_notnull"
	// C:\\Users\\grand\\Desktop\\another\\MySQL.g:323:1: null_or_notnull : ( (
	// NOT_SYM NULL_SYM ) | NULL_SYM );
	public final MySQLParser.null_or_notnull_return null_or_notnull()
			throws RecognitionException {
		MySQLParser.null_or_notnull_return retval = new MySQLParser.null_or_notnull_return();
		retval.start = input.LT(1);

		Object root_0 = null;

		Token NOT_SYM345 = null;
		Token NULL_SYM346 = null;
		Token NULL_SYM347 = null;

		Object NOT_SYM345_tree = null;
		Object NULL_SYM346_tree = null;
		Object NULL_SYM347_tree = null;

		try {
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:323:16: ( ( NOT_SYM
			// NULL_SYM ) | NULL_SYM )
			int alt136 = 2;
			int LA136_0 = input.LA(1);

			if ((LA136_0 == NOT_SYM)) {
				alt136 = 1;
			} else if ((LA136_0 == NULL_SYM)) {
				alt136 = 2;
			} else {
				if (state.backtracking > 0) {
					state.failed = true;
					return retval;
				}
				NoViableAltException nvae = new NoViableAltException("", 136,
						0, input);

				throw nvae;
			}
			switch (alt136) {
			case 1:
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:324:2: ( NOT_SYM
			// NULL_SYM )
			{
				root_0 = (Object) adaptor.nil();

				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:324:2: ( NOT_SYM
				// NULL_SYM )
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:324:3: NOT_SYM
				// NULL_SYM
				{
					NOT_SYM345 = (Token) match(input, NOT_SYM,
							FOLLOW_NOT_SYM_in_null_or_notnull2471);
					if (state.failed)
						return retval;
					if (state.backtracking == 0) {
						NOT_SYM345_tree = (Object) adaptor.create(NOT_SYM345);
						adaptor.addChild(root_0, NOT_SYM345_tree);
					}
					NULL_SYM346 = (Token) match(input, NULL_SYM,
							FOLLOW_NULL_SYM_in_null_or_notnull2473);
					if (state.failed)
						return retval;
					if (state.backtracking == 0) {
						NULL_SYM346_tree = (Object) adaptor.create(NULL_SYM346);
						adaptor.addChild(root_0, NULL_SYM346_tree);
					}

				}

			}
				break;
			case 2:
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:324:23: NULL_SYM
			{
				root_0 = (Object) adaptor.nil();

				NULL_SYM347 = (Token) match(input, NULL_SYM,
						FOLLOW_NULL_SYM_in_null_or_notnull2478);
				if (state.failed)
					return retval;
				if (state.backtracking == 0) {
					NULL_SYM347_tree = (Object) adaptor.create(NULL_SYM347);
					adaptor.addChild(root_0, NULL_SYM347_tree);
				}

			}
				break;

			}
			retval.stop = input.LT(-1);

			if (state.backtracking == 0) {

				retval.tree = (Object) adaptor.rulePostProcessing(root_0);
				adaptor.setTokenBoundaries(retval.tree, retval.start,
						retval.stop);
			}
		} catch (RecognitionException re) {
			reportError(re);
			recover(input, re);
			retval.tree = (Object) adaptor.errorNode(input, retval.start,
					input.LT(-1), re);

		} finally {
		}
		return retval;
	}

	// $ANTLR end "null_or_notnull"

	public static class column_data_type_header_return extends
			ParserRuleReturnScope {
		Object tree;

		public Object getTree() {
			return tree;
		}
	};

	// $ANTLR start "column_data_type_header"
	// C:\\Users\\grand\\Desktop\\another\\MySQL.g:327:1:
	// column_data_type_header : ( ( BIT_SYM ( LPAREN length RPAREN )? (
	// null_or_notnull )? ( DEFAULT bit_literal )? ) | ( TINYINT ( LPAREN length
	// RPAREN )? ( UNSIGNED_SYM )? ( ZEROFILL )? ( null_or_notnull )? ( DEFAULT
	// number_literal )? ) | ( SMALLINT ( LPAREN length RPAREN )? ( UNSIGNED_SYM
	// )? ( ZEROFILL )? ( null_or_notnull )? ( DEFAULT number_literal )? ) | (
	// MEDIUMINT ( LPAREN length RPAREN )? ( UNSIGNED_SYM )? ( ZEROFILL )? (
	// null_or_notnull )? ( DEFAULT number_literal )? ) | ( INT_SYM ( LPAREN
	// length RPAREN )? ( UNSIGNED_SYM )? ( ZEROFILL )? ( null_or_notnull )? (
	// DEFAULT number_literal )? ) | ( INTEGER_SYM ( LPAREN length RPAREN )? (
	// UNSIGNED_SYM )? ( ZEROFILL )? ( null_or_notnull )? ( DEFAULT
	// number_literal )? ) | ( BIGINT ( LPAREN length RPAREN )? ( UNSIGNED_SYM
	// )? ( ZEROFILL )? ( null_or_notnull )? ( DEFAULT number_literal )? ) | (
	// REAL ( LPAREN length COMMA number_literal RPAREN )? ( UNSIGNED_SYM )? (
	// ZEROFILL )? ( null_or_notnull )? ( DEFAULT number_literal )? ) | (
	// DOUBLE_SYM ( LPAREN length COMMA number_literal RPAREN )? ( UNSIGNED_SYM
	// )? ( ZEROFILL )? ( null_or_notnull )? ( DEFAULT number_literal )? ) | (
	// FLOAT_SYM ( LPAREN length COMMA number_literal RPAREN )? ( UNSIGNED_SYM
	// )? ( ZEROFILL )? ( null_or_notnull )? ( DEFAULT number_literal )? ) | (
	// DECIMAL_SYM ( LPAREN length ( COMMA number_literal )? RPAREN )? (
	// UNSIGNED_SYM )? ( ZEROFILL )? ( null_or_notnull )? ( DEFAULT
	// number_literal )? ) | ( NUMERIC_SYM ( LPAREN length ( COMMA
	// number_literal )? RPAREN )? ( UNSIGNED_SYM )? ( ZEROFILL )? (
	// null_or_notnull )? ( DEFAULT number_literal )? ) | ( DATE_SYM (
	// null_or_notnull )? ( DEFAULT TEXT_STRING )? ) | ( TIME_SYM (
	// null_or_notnull )? ( DEFAULT TEXT_STRING )? ) | ( TIMESTAMP (
	// null_or_notnull )? ( DEFAULT ( CURRENT_TIMESTAMP | TEXT_STRING ) )? ) | (
	// DATETIME ( null_or_notnull )? ( DEFAULT ( CURRENT_TIMESTAMP | TEXT_STRING
	// ) )? ) | ( YEAR ( null_or_notnull )? ( DEFAULT INTEGER_NUM )? ) | ( CHAR
	// ( LPAREN length RPAREN )? ( CHARACTER_SYM SET_SYM charset_name )? (
	// COLLATE_SYM collation_name )? ( null_or_notnull )? ( DEFAULT TEXT_STRING
	// )? ) | ( VARCHAR LPAREN length RPAREN ( CHARACTER_SYM SET_SYM
	// charset_name )? ( COLLATE_SYM collation_name )? ( null_or_notnull )? (
	// DEFAULT TEXT_STRING )? ) | ( BINARY ( LPAREN length RPAREN )? (
	// null_or_notnull )? ( DEFAULT TEXT_STRING )? ) | ( VARBINARY LPAREN length
	// RPAREN ( null_or_notnull )? ( DEFAULT TEXT_STRING )? ) | ( TINYBLOB (
	// null_or_notnull )? ) | ( BLOB_SYM ( null_or_notnull )? ) | ( MEDIUMBLOB (
	// null_or_notnull )? ) | ( LONGBLOB ( null_or_notnull )? ) | ( TINYTEXT (
	// BINARY )? ( CHARACTER_SYM SET_SYM charset_name )? ( COLLATE_SYM
	// collation_name )? ( null_or_notnull )? ) | ( TEXT_SYM ( BINARY )? (
	// CHARACTER_SYM SET_SYM charset_name )? ( COLLATE_SYM collation_name )? (
	// null_or_notnull )? ) | ( MEDIUMTEXT ( BINARY )? ( CHARACTER_SYM SET_SYM
	// charset_name )? ( COLLATE_SYM collation_name )? ( null_or_notnull )? ) |
	// ( LONGTEXT ( BINARY )? ( CHARACTER_SYM SET_SYM charset_name )? (
	// COLLATE_SYM collation_name )? ( null_or_notnull )? ) | ( ENUM LPAREN
	// TEXT_STRING ( COMMA TEXT_STRING )* RPAREN ( CHARACTER_SYM SET_SYM
	// charset_name )? ( COLLATE_SYM collation_name )? ( null_or_notnull )? (
	// DEFAULT TEXT_STRING )? ) | ( SET_SYM LPAREN TEXT_STRING ( COMMA
	// TEXT_STRING )* RPAREN ( CHARACTER_SYM SET_SYM charset_name )? (
	// COLLATE_SYM collation_name )? ( null_or_notnull )? ( DEFAULT TEXT_STRING
	// )? ) );
	public final MySQLParser.column_data_type_header_return column_data_type_header()
			throws RecognitionException {
		MySQLParser.column_data_type_header_return retval = new MySQLParser.column_data_type_header_return();
		retval.start = input.LT(1);

		Object root_0 = null;

		Token BIT_SYM348 = null;
		Token LPAREN349 = null;
		Token RPAREN351 = null;
		Token DEFAULT353 = null;
		Token TINYINT355 = null;
		Token LPAREN356 = null;
		Token RPAREN358 = null;
		Token UNSIGNED_SYM359 = null;
		Token ZEROFILL360 = null;
		Token DEFAULT362 = null;
		Token SMALLINT364 = null;
		Token LPAREN365 = null;
		Token RPAREN367 = null;
		Token UNSIGNED_SYM368 = null;
		Token ZEROFILL369 = null;
		Token DEFAULT371 = null;
		Token MEDIUMINT373 = null;
		Token LPAREN374 = null;
		Token RPAREN376 = null;
		Token UNSIGNED_SYM377 = null;
		Token ZEROFILL378 = null;
		Token DEFAULT380 = null;
		Token INT_SYM382 = null;
		Token LPAREN383 = null;
		Token RPAREN385 = null;
		Token UNSIGNED_SYM386 = null;
		Token ZEROFILL387 = null;
		Token DEFAULT389 = null;
		Token INTEGER_SYM391 = null;
		Token LPAREN392 = null;
		Token RPAREN394 = null;
		Token UNSIGNED_SYM395 = null;
		Token ZEROFILL396 = null;
		Token DEFAULT398 = null;
		Token BIGINT400 = null;
		Token LPAREN401 = null;
		Token RPAREN403 = null;
		Token UNSIGNED_SYM404 = null;
		Token ZEROFILL405 = null;
		Token DEFAULT407 = null;
		Token REAL409 = null;
		Token LPAREN410 = null;
		Token COMMA412 = null;
		Token RPAREN414 = null;
		Token UNSIGNED_SYM415 = null;
		Token ZEROFILL416 = null;
		Token DEFAULT418 = null;
		Token DOUBLE_SYM420 = null;
		Token LPAREN421 = null;
		Token COMMA423 = null;
		Token RPAREN425 = null;
		Token UNSIGNED_SYM426 = null;
		Token ZEROFILL427 = null;
		Token DEFAULT429 = null;
		Token FLOAT_SYM431 = null;
		Token LPAREN432 = null;
		Token COMMA434 = null;
		Token RPAREN436 = null;
		Token UNSIGNED_SYM437 = null;
		Token ZEROFILL438 = null;
		Token DEFAULT440 = null;
		Token DECIMAL_SYM442 = null;
		Token LPAREN443 = null;
		Token COMMA445 = null;
		Token RPAREN447 = null;
		Token UNSIGNED_SYM448 = null;
		Token ZEROFILL449 = null;
		Token DEFAULT451 = null;
		Token NUMERIC_SYM453 = null;
		Token LPAREN454 = null;
		Token COMMA456 = null;
		Token RPAREN458 = null;
		Token UNSIGNED_SYM459 = null;
		Token ZEROFILL460 = null;
		Token DEFAULT462 = null;
		Token DATE_SYM464 = null;
		Token DEFAULT466 = null;
		Token TEXT_STRING467 = null;
		Token TIME_SYM468 = null;
		Token DEFAULT470 = null;
		Token TEXT_STRING471 = null;
		Token TIMESTAMP472 = null;
		Token DEFAULT474 = null;
		Token set475 = null;
		Token DATETIME476 = null;
		Token DEFAULT478 = null;
		Token set479 = null;
		Token YEAR480 = null;
		Token DEFAULT482 = null;
		Token INTEGER_NUM483 = null;
		Token CHAR484 = null;
		Token LPAREN485 = null;
		Token RPAREN487 = null;
		Token CHARACTER_SYM488 = null;
		Token SET_SYM489 = null;
		Token COLLATE_SYM491 = null;
		Token DEFAULT494 = null;
		Token TEXT_STRING495 = null;
		Token VARCHAR496 = null;
		Token LPAREN497 = null;
		Token RPAREN499 = null;
		Token CHARACTER_SYM500 = null;
		Token SET_SYM501 = null;
		Token COLLATE_SYM503 = null;
		Token DEFAULT506 = null;
		Token TEXT_STRING507 = null;
		Token BINARY508 = null;
		Token LPAREN509 = null;
		Token RPAREN511 = null;
		Token DEFAULT513 = null;
		Token TEXT_STRING514 = null;
		Token VARBINARY515 = null;
		Token LPAREN516 = null;
		Token RPAREN518 = null;
		Token DEFAULT520 = null;
		Token TEXT_STRING521 = null;
		Token TINYBLOB522 = null;
		Token BLOB_SYM524 = null;
		Token MEDIUMBLOB526 = null;
		Token LONGBLOB528 = null;
		Token TINYTEXT530 = null;
		Token BINARY531 = null;
		Token CHARACTER_SYM532 = null;
		Token SET_SYM533 = null;
		Token COLLATE_SYM535 = null;
		Token TEXT_SYM538 = null;
		Token BINARY539 = null;
		Token CHARACTER_SYM540 = null;
		Token SET_SYM541 = null;
		Token COLLATE_SYM543 = null;
		Token MEDIUMTEXT546 = null;
		Token BINARY547 = null;
		Token CHARACTER_SYM548 = null;
		Token SET_SYM549 = null;
		Token COLLATE_SYM551 = null;
		Token LONGTEXT554 = null;
		Token BINARY555 = null;
		Token CHARACTER_SYM556 = null;
		Token SET_SYM557 = null;
		Token COLLATE_SYM559 = null;
		Token ENUM562 = null;
		Token LPAREN563 = null;
		Token TEXT_STRING564 = null;
		Token COMMA565 = null;
		Token TEXT_STRING566 = null;
		Token RPAREN567 = null;
		Token CHARACTER_SYM568 = null;
		Token SET_SYM569 = null;
		Token COLLATE_SYM571 = null;
		Token DEFAULT574 = null;
		Token TEXT_STRING575 = null;
		Token SET_SYM576 = null;
		Token LPAREN577 = null;
		Token TEXT_STRING578 = null;
		Token COMMA579 = null;
		Token TEXT_STRING580 = null;
		Token RPAREN581 = null;
		Token CHARACTER_SYM582 = null;
		Token SET_SYM583 = null;
		Token COLLATE_SYM585 = null;
		Token DEFAULT588 = null;
		Token TEXT_STRING589 = null;
		MySQLParser.length_return length350 = null;

		MySQLParser.null_or_notnull_return null_or_notnull352 = null;

		MySQLParser.bit_literal_return bit_literal354 = null;

		MySQLParser.length_return length357 = null;

		MySQLParser.null_or_notnull_return null_or_notnull361 = null;

		MySQLParser.number_literal_return number_literal363 = null;

		MySQLParser.length_return length366 = null;

		MySQLParser.null_or_notnull_return null_or_notnull370 = null;

		MySQLParser.number_literal_return number_literal372 = null;

		MySQLParser.length_return length375 = null;

		MySQLParser.null_or_notnull_return null_or_notnull379 = null;

		MySQLParser.number_literal_return number_literal381 = null;

		MySQLParser.length_return length384 = null;

		MySQLParser.null_or_notnull_return null_or_notnull388 = null;

		MySQLParser.number_literal_return number_literal390 = null;

		MySQLParser.length_return length393 = null;

		MySQLParser.null_or_notnull_return null_or_notnull397 = null;

		MySQLParser.number_literal_return number_literal399 = null;

		MySQLParser.length_return length402 = null;

		MySQLParser.null_or_notnull_return null_or_notnull406 = null;

		MySQLParser.number_literal_return number_literal408 = null;

		MySQLParser.length_return length411 = null;

		MySQLParser.number_literal_return number_literal413 = null;

		MySQLParser.null_or_notnull_return null_or_notnull417 = null;

		MySQLParser.number_literal_return number_literal419 = null;

		MySQLParser.length_return length422 = null;

		MySQLParser.number_literal_return number_literal424 = null;

		MySQLParser.null_or_notnull_return null_or_notnull428 = null;

		MySQLParser.number_literal_return number_literal430 = null;

		MySQLParser.length_return length433 = null;

		MySQLParser.number_literal_return number_literal435 = null;

		MySQLParser.null_or_notnull_return null_or_notnull439 = null;

		MySQLParser.number_literal_return number_literal441 = null;

		MySQLParser.length_return length444 = null;

		MySQLParser.number_literal_return number_literal446 = null;

		MySQLParser.null_or_notnull_return null_or_notnull450 = null;

		MySQLParser.number_literal_return number_literal452 = null;

		MySQLParser.length_return length455 = null;

		MySQLParser.number_literal_return number_literal457 = null;

		MySQLParser.null_or_notnull_return null_or_notnull461 = null;

		MySQLParser.number_literal_return number_literal463 = null;

		MySQLParser.null_or_notnull_return null_or_notnull465 = null;

		MySQLParser.null_or_notnull_return null_or_notnull469 = null;

		MySQLParser.null_or_notnull_return null_or_notnull473 = null;

		MySQLParser.null_or_notnull_return null_or_notnull477 = null;

		MySQLParser.null_or_notnull_return null_or_notnull481 = null;

		MySQLParser.length_return length486 = null;

		MySQLParser.charset_name_return charset_name490 = null;

		MySQLParser.collation_name_return collation_name492 = null;

		MySQLParser.null_or_notnull_return null_or_notnull493 = null;

		MySQLParser.length_return length498 = null;

		MySQLParser.charset_name_return charset_name502 = null;

		MySQLParser.collation_name_return collation_name504 = null;

		MySQLParser.null_or_notnull_return null_or_notnull505 = null;

		MySQLParser.length_return length510 = null;

		MySQLParser.null_or_notnull_return null_or_notnull512 = null;

		MySQLParser.length_return length517 = null;

		MySQLParser.null_or_notnull_return null_or_notnull519 = null;

		MySQLParser.null_or_notnull_return null_or_notnull523 = null;

		MySQLParser.null_or_notnull_return null_or_notnull525 = null;

		MySQLParser.null_or_notnull_return null_or_notnull527 = null;

		MySQLParser.null_or_notnull_return null_or_notnull529 = null;

		MySQLParser.charset_name_return charset_name534 = null;

		MySQLParser.collation_name_return collation_name536 = null;

		MySQLParser.null_or_notnull_return null_or_notnull537 = null;

		MySQLParser.charset_name_return charset_name542 = null;

		MySQLParser.collation_name_return collation_name544 = null;

		MySQLParser.null_or_notnull_return null_or_notnull545 = null;

		MySQLParser.charset_name_return charset_name550 = null;

		MySQLParser.collation_name_return collation_name552 = null;

		MySQLParser.null_or_notnull_return null_or_notnull553 = null;

		MySQLParser.charset_name_return charset_name558 = null;

		MySQLParser.collation_name_return collation_name560 = null;

		MySQLParser.null_or_notnull_return null_or_notnull561 = null;

		MySQLParser.charset_name_return charset_name570 = null;

		MySQLParser.collation_name_return collation_name572 = null;

		MySQLParser.null_or_notnull_return null_or_notnull573 = null;

		MySQLParser.charset_name_return charset_name584 = null;

		MySQLParser.collation_name_return collation_name586 = null;

		MySQLParser.null_or_notnull_return null_or_notnull587 = null;

		Object BIT_SYM348_tree = null;
		Object LPAREN349_tree = null;
		Object RPAREN351_tree = null;
		Object DEFAULT353_tree = null;
		Object TINYINT355_tree = null;
		Object LPAREN356_tree = null;
		Object RPAREN358_tree = null;
		Object UNSIGNED_SYM359_tree = null;
		Object ZEROFILL360_tree = null;
		Object DEFAULT362_tree = null;
		Object SMALLINT364_tree = null;
		Object LPAREN365_tree = null;
		Object RPAREN367_tree = null;
		Object UNSIGNED_SYM368_tree = null;
		Object ZEROFILL369_tree = null;
		Object DEFAULT371_tree = null;
		Object MEDIUMINT373_tree = null;
		Object LPAREN374_tree = null;
		Object RPAREN376_tree = null;
		Object UNSIGNED_SYM377_tree = null;
		Object ZEROFILL378_tree = null;
		Object DEFAULT380_tree = null;
		Object INT_SYM382_tree = null;
		Object LPAREN383_tree = null;
		Object RPAREN385_tree = null;
		Object UNSIGNED_SYM386_tree = null;
		Object ZEROFILL387_tree = null;
		Object DEFAULT389_tree = null;
		Object INTEGER_SYM391_tree = null;
		Object LPAREN392_tree = null;
		Object RPAREN394_tree = null;
		Object UNSIGNED_SYM395_tree = null;
		Object ZEROFILL396_tree = null;
		Object DEFAULT398_tree = null;
		Object BIGINT400_tree = null;
		Object LPAREN401_tree = null;
		Object RPAREN403_tree = null;
		Object UNSIGNED_SYM404_tree = null;
		Object ZEROFILL405_tree = null;
		Object DEFAULT407_tree = null;
		Object REAL409_tree = null;
		Object LPAREN410_tree = null;
		Object COMMA412_tree = null;
		Object RPAREN414_tree = null;
		Object UNSIGNED_SYM415_tree = null;
		Object ZEROFILL416_tree = null;
		Object DEFAULT418_tree = null;
		Object DOUBLE_SYM420_tree = null;
		Object LPAREN421_tree = null;
		Object COMMA423_tree = null;
		Object RPAREN425_tree = null;
		Object UNSIGNED_SYM426_tree = null;
		Object ZEROFILL427_tree = null;
		Object DEFAULT429_tree = null;
		Object FLOAT_SYM431_tree = null;
		Object LPAREN432_tree = null;
		Object COMMA434_tree = null;
		Object RPAREN436_tree = null;
		Object UNSIGNED_SYM437_tree = null;
		Object ZEROFILL438_tree = null;
		Object DEFAULT440_tree = null;
		Object DECIMAL_SYM442_tree = null;
		Object LPAREN443_tree = null;
		Object COMMA445_tree = null;
		Object RPAREN447_tree = null;
		Object UNSIGNED_SYM448_tree = null;
		Object ZEROFILL449_tree = null;
		Object DEFAULT451_tree = null;
		Object NUMERIC_SYM453_tree = null;
		Object LPAREN454_tree = null;
		Object COMMA456_tree = null;
		Object RPAREN458_tree = null;
		Object UNSIGNED_SYM459_tree = null;
		Object ZEROFILL460_tree = null;
		Object DEFAULT462_tree = null;
		Object DATE_SYM464_tree = null;
		Object DEFAULT466_tree = null;
		Object TEXT_STRING467_tree = null;
		Object TIME_SYM468_tree = null;
		Object DEFAULT470_tree = null;
		Object TEXT_STRING471_tree = null;
		Object TIMESTAMP472_tree = null;
		Object DEFAULT474_tree = null;
		Object set475_tree = null;
		Object DATETIME476_tree = null;
		Object DEFAULT478_tree = null;
		Object set479_tree = null;
		Object YEAR480_tree = null;
		Object DEFAULT482_tree = null;
		Object INTEGER_NUM483_tree = null;
		Object CHAR484_tree = null;
		Object LPAREN485_tree = null;
		Object RPAREN487_tree = null;
		Object CHARACTER_SYM488_tree = null;
		Object SET_SYM489_tree = null;
		Object COLLATE_SYM491_tree = null;
		Object DEFAULT494_tree = null;
		Object TEXT_STRING495_tree = null;
		Object VARCHAR496_tree = null;
		Object LPAREN497_tree = null;
		Object RPAREN499_tree = null;
		Object CHARACTER_SYM500_tree = null;
		Object SET_SYM501_tree = null;
		Object COLLATE_SYM503_tree = null;
		Object DEFAULT506_tree = null;
		Object TEXT_STRING507_tree = null;
		Object BINARY508_tree = null;
		Object LPAREN509_tree = null;
		Object RPAREN511_tree = null;
		Object DEFAULT513_tree = null;
		Object TEXT_STRING514_tree = null;
		Object VARBINARY515_tree = null;
		Object LPAREN516_tree = null;
		Object RPAREN518_tree = null;
		Object DEFAULT520_tree = null;
		Object TEXT_STRING521_tree = null;
		Object TINYBLOB522_tree = null;
		Object BLOB_SYM524_tree = null;
		Object MEDIUMBLOB526_tree = null;
		Object LONGBLOB528_tree = null;
		Object TINYTEXT530_tree = null;
		Object BINARY531_tree = null;
		Object CHARACTER_SYM532_tree = null;
		Object SET_SYM533_tree = null;
		Object COLLATE_SYM535_tree = null;
		Object TEXT_SYM538_tree = null;
		Object BINARY539_tree = null;
		Object CHARACTER_SYM540_tree = null;
		Object SET_SYM541_tree = null;
		Object COLLATE_SYM543_tree = null;
		Object MEDIUMTEXT546_tree = null;
		Object BINARY547_tree = null;
		Object CHARACTER_SYM548_tree = null;
		Object SET_SYM549_tree = null;
		Object COLLATE_SYM551_tree = null;
		Object LONGTEXT554_tree = null;
		Object BINARY555_tree = null;
		Object CHARACTER_SYM556_tree = null;
		Object SET_SYM557_tree = null;
		Object COLLATE_SYM559_tree = null;
		Object ENUM562_tree = null;
		Object LPAREN563_tree = null;
		Object TEXT_STRING564_tree = null;
		Object COMMA565_tree = null;
		Object TEXT_STRING566_tree = null;
		Object RPAREN567_tree = null;
		Object CHARACTER_SYM568_tree = null;
		Object SET_SYM569_tree = null;
		Object COLLATE_SYM571_tree = null;
		Object DEFAULT574_tree = null;
		Object TEXT_STRING575_tree = null;
		Object SET_SYM576_tree = null;
		Object LPAREN577_tree = null;
		Object TEXT_STRING578_tree = null;
		Object COMMA579_tree = null;
		Object TEXT_STRING580_tree = null;
		Object RPAREN581_tree = null;
		Object CHARACTER_SYM582_tree = null;
		Object SET_SYM583_tree = null;
		Object COLLATE_SYM585_tree = null;
		Object DEFAULT588_tree = null;
		Object TEXT_STRING589_tree = null;

		try {
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:327:24: ( ( BIT_SYM (
			// LPAREN length RPAREN )? ( null_or_notnull )? ( DEFAULT
			// bit_literal )? ) | ( TINYINT ( LPAREN length RPAREN )? (
			// UNSIGNED_SYM )? ( ZEROFILL )? ( null_or_notnull )? ( DEFAULT
			// number_literal )? ) | ( SMALLINT ( LPAREN length RPAREN )? (
			// UNSIGNED_SYM )? ( ZEROFILL )? ( null_or_notnull )? ( DEFAULT
			// number_literal )? ) | ( MEDIUMINT ( LPAREN length RPAREN )? (
			// UNSIGNED_SYM )? ( ZEROFILL )? ( null_or_notnull )? ( DEFAULT
			// number_literal )? ) | ( INT_SYM ( LPAREN length RPAREN )? (
			// UNSIGNED_SYM )? ( ZEROFILL )? ( null_or_notnull )? ( DEFAULT
			// number_literal )? ) | ( INTEGER_SYM ( LPAREN length RPAREN )? (
			// UNSIGNED_SYM )? ( ZEROFILL )? ( null_or_notnull )? ( DEFAULT
			// number_literal )? ) | ( BIGINT ( LPAREN length RPAREN )? (
			// UNSIGNED_SYM )? ( ZEROFILL )? ( null_or_notnull )? ( DEFAULT
			// number_literal )? ) | ( REAL ( LPAREN length COMMA number_literal
			// RPAREN )? ( UNSIGNED_SYM )? ( ZEROFILL )? ( null_or_notnull )? (
			// DEFAULT number_literal )? ) | ( DOUBLE_SYM ( LPAREN length COMMA
			// number_literal RPAREN )? ( UNSIGNED_SYM )? ( ZEROFILL )? (
			// null_or_notnull )? ( DEFAULT number_literal )? ) | ( FLOAT_SYM (
			// LPAREN length COMMA number_literal RPAREN )? ( UNSIGNED_SYM )? (
			// ZEROFILL )? ( null_or_notnull )? ( DEFAULT number_literal )? ) |
			// ( DECIMAL_SYM ( LPAREN length ( COMMA number_literal )? RPAREN )?
			// ( UNSIGNED_SYM )? ( ZEROFILL )? ( null_or_notnull )? ( DEFAULT
			// number_literal )? ) | ( NUMERIC_SYM ( LPAREN length ( COMMA
			// number_literal )? RPAREN )? ( UNSIGNED_SYM )? ( ZEROFILL )? (
			// null_or_notnull )? ( DEFAULT number_literal )? ) | ( DATE_SYM (
			// null_or_notnull )? ( DEFAULT TEXT_STRING )? ) | ( TIME_SYM (
			// null_or_notnull )? ( DEFAULT TEXT_STRING )? ) | ( TIMESTAMP (
			// null_or_notnull )? ( DEFAULT ( CURRENT_TIMESTAMP | TEXT_STRING )
			// )? ) | ( DATETIME ( null_or_notnull )? ( DEFAULT (
			// CURRENT_TIMESTAMP | TEXT_STRING ) )? ) | ( YEAR ( null_or_notnull
			// )? ( DEFAULT INTEGER_NUM )? ) | ( CHAR ( LPAREN length RPAREN )?
			// ( CHARACTER_SYM SET_SYM charset_name )? ( COLLATE_SYM
			// collation_name )? ( null_or_notnull )? ( DEFAULT TEXT_STRING )? )
			// | ( VARCHAR LPAREN length RPAREN ( CHARACTER_SYM SET_SYM
			// charset_name )? ( COLLATE_SYM collation_name )? ( null_or_notnull
			// )? ( DEFAULT TEXT_STRING )? ) | ( BINARY ( LPAREN length RPAREN
			// )? ( null_or_notnull )? ( DEFAULT TEXT_STRING )? ) | ( VARBINARY
			// LPAREN length RPAREN ( null_or_notnull )? ( DEFAULT TEXT_STRING
			// )? ) | ( TINYBLOB ( null_or_notnull )? ) | ( BLOB_SYM (
			// null_or_notnull )? ) | ( MEDIUMBLOB ( null_or_notnull )? ) | (
			// LONGBLOB ( null_or_notnull )? ) | ( TINYTEXT ( BINARY )? (
			// CHARACTER_SYM SET_SYM charset_name )? ( COLLATE_SYM
			// collation_name )? ( null_or_notnull )? ) | ( TEXT_SYM ( BINARY )?
			// ( CHARACTER_SYM SET_SYM charset_name )? ( COLLATE_SYM
			// collation_name )? ( null_or_notnull )? ) | ( MEDIUMTEXT ( BINARY
			// )? ( CHARACTER_SYM SET_SYM charset_name )? ( COLLATE_SYM
			// collation_name )? ( null_or_notnull )? ) | ( LONGTEXT ( BINARY )?
			// ( CHARACTER_SYM SET_SYM charset_name )? ( COLLATE_SYM
			// collation_name )? ( null_or_notnull )? ) | ( ENUM LPAREN
			// TEXT_STRING ( COMMA TEXT_STRING )* RPAREN ( CHARACTER_SYM SET_SYM
			// charset_name )? ( COLLATE_SYM collation_name )? ( null_or_notnull
			// )? ( DEFAULT TEXT_STRING )? ) | ( SET_SYM LPAREN TEXT_STRING (
			// COMMA TEXT_STRING )* RPAREN ( CHARACTER_SYM SET_SYM charset_name
			// )? ( COLLATE_SYM collation_name )? ( null_or_notnull )? ( DEFAULT
			// TEXT_STRING )? ) )
			int alt251 = 31;
			switch (input.LA(1)) {
			case BIT_SYM: {
				alt251 = 1;
			}
				break;
			case TINYINT: {
				alt251 = 2;
			}
				break;
			case SMALLINT: {
				alt251 = 3;
			}
				break;
			case MEDIUMINT: {
				alt251 = 4;
			}
				break;
			case INT_SYM: {
				alt251 = 5;
			}
				break;
			case INTEGER_SYM: {
				alt251 = 6;
			}
				break;
			case BIGINT: {
				alt251 = 7;
			}
				break;
			case REAL: {
				alt251 = 8;
			}
				break;
			case DOUBLE_SYM: {
				alt251 = 9;
			}
				break;
			case FLOAT_SYM: {
				alt251 = 10;
			}
				break;
			case DECIMAL_SYM: {
				alt251 = 11;
			}
				break;
			case NUMERIC_SYM: {
				alt251 = 12;
			}
				break;
			case DATE_SYM: {
				alt251 = 13;
			}
				break;
			case TIME_SYM: {
				alt251 = 14;
			}
				break;
			case TIMESTAMP: {
				alt251 = 15;
			}
				break;
			case DATETIME: {
				alt251 = 16;
			}
				break;
			case YEAR: {
				alt251 = 17;
			}
				break;
			case CHAR: {
				alt251 = 18;
			}
				break;
			case VARCHAR: {
				alt251 = 19;
			}
				break;
			case BINARY: {
				alt251 = 20;
			}
				break;
			case VARBINARY: {
				alt251 = 21;
			}
				break;
			case TINYBLOB: {
				alt251 = 22;
			}
				break;
			case BLOB_SYM: {
				alt251 = 23;
			}
				break;
			case MEDIUMBLOB: {
				alt251 = 24;
			}
				break;
			case LONGBLOB: {
				alt251 = 25;
			}
				break;
			case TINYTEXT: {
				alt251 = 26;
			}
				break;
			case TEXT_SYM: {
				alt251 = 27;
			}
				break;
			case MEDIUMTEXT: {
				alt251 = 28;
			}
				break;
			case LONGTEXT: {
				alt251 = 29;
			}
				break;
			case ENUM: {
				alt251 = 30;
			}
				break;
			case SET_SYM: {
				alt251 = 31;
			}
				break;
			default:
				if (state.backtracking > 0) {
					state.failed = true;
					return retval;
				}
				NoViableAltException nvae = new NoViableAltException("", 251,
						0, input);

				throw nvae;
			}

			switch (alt251) {
			case 1:
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:328:4: ( BIT_SYM (
			// LPAREN length RPAREN )? ( null_or_notnull )? ( DEFAULT
			// bit_literal )? )
			{
				root_0 = (Object) adaptor.nil();

				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:328:4: ( BIT_SYM
				// ( LPAREN length RPAREN )? ( null_or_notnull )? ( DEFAULT
				// bit_literal )? )
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:328:7: BIT_SYM (
				// LPAREN length RPAREN )? ( null_or_notnull )? ( DEFAULT
				// bit_literal )?
				{
					BIT_SYM348 = (Token) match(input, BIT_SYM,
							FOLLOW_BIT_SYM_in_column_data_type_header2492);
					if (state.failed)
						return retval;
					if (state.backtracking == 0) {
						BIT_SYM348_tree = (Object) adaptor.create(BIT_SYM348);
						adaptor.addChild(root_0, BIT_SYM348_tree);
					}
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:328:14: (
					// LPAREN length RPAREN )?
					int alt137 = 2;
					int LA137_0 = input.LA(1);

					if ((LA137_0 == LPAREN)) {
						alt137 = 1;
					}
					switch (alt137) {
					case 1:
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:328:15:
					// LPAREN length RPAREN
					{
						LPAREN349 = (Token) match(input, LPAREN,
								FOLLOW_LPAREN_in_column_data_type_header2494);
						if (state.failed)
							return retval;
						if (state.backtracking == 0) {
							LPAREN349_tree = (Object) adaptor.create(LPAREN349);
							adaptor.addChild(root_0, LPAREN349_tree);
						}
						pushFollow(FOLLOW_length_in_column_data_type_header2496);
						length350 = length();

						state._fsp--;
						if (state.failed)
							return retval;
						if (state.backtracking == 0)
							adaptor.addChild(root_0, length350.getTree());
						RPAREN351 = (Token) match(input, RPAREN,
								FOLLOW_RPAREN_in_column_data_type_header2498);
						if (state.failed)
							return retval;
						if (state.backtracking == 0) {
							RPAREN351_tree = (Object) adaptor.create(RPAREN351);
							adaptor.addChild(root_0, RPAREN351_tree);
						}

					}
						break;

					}

					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:328:38: (
					// null_or_notnull )?
					int alt138 = 2;
					int LA138_0 = input.LA(1);

					if ((LA138_0 == NOT_SYM || LA138_0 == NULL_SYM)) {
						alt138 = 1;
					}
					switch (alt138) {
					case 1:
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:328:39:
					// null_or_notnull
					{
						pushFollow(FOLLOW_null_or_notnull_in_column_data_type_header2503);
						null_or_notnull352 = null_or_notnull();

						state._fsp--;
						if (state.failed)
							return retval;
						if (state.backtracking == 0)
							adaptor.addChild(root_0,
									null_or_notnull352.getTree());

					}
						break;

					}

					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:328:57: (
					// DEFAULT bit_literal )?
					int alt139 = 2;
					int LA139_0 = input.LA(1);

					if ((LA139_0 == DEFAULT)) {
						alt139 = 1;
					}
					switch (alt139) {
					case 1:
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:328:58:
					// DEFAULT bit_literal
					{
						DEFAULT353 = (Token) match(input, DEFAULT,
								FOLLOW_DEFAULT_in_column_data_type_header2508);
						if (state.failed)
							return retval;
						if (state.backtracking == 0) {
							DEFAULT353_tree = (Object) adaptor
									.create(DEFAULT353);
							adaptor.addChild(root_0, DEFAULT353_tree);
						}
						pushFollow(FOLLOW_bit_literal_in_column_data_type_header2510);
						bit_literal354 = bit_literal();

						state._fsp--;
						if (state.failed)
							return retval;
						if (state.backtracking == 0)
							adaptor.addChild(root_0, bit_literal354.getTree());

					}
						break;

					}

				}

			}
				break;
			case 2:
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:329:4: ( TINYINT (
			// LPAREN length RPAREN )? ( UNSIGNED_SYM )? ( ZEROFILL )? (
			// null_or_notnull )? ( DEFAULT number_literal )? )
			{
				root_0 = (Object) adaptor.nil();

				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:329:4: ( TINYINT
				// ( LPAREN length RPAREN )? ( UNSIGNED_SYM )? ( ZEROFILL )? (
				// null_or_notnull )? ( DEFAULT number_literal )? )
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:329:7: TINYINT (
				// LPAREN length RPAREN )? ( UNSIGNED_SYM )? ( ZEROFILL )? (
				// null_or_notnull )? ( DEFAULT number_literal )?
				{
					TINYINT355 = (Token) match(input, TINYINT,
							FOLLOW_TINYINT_in_column_data_type_header2523);
					if (state.failed)
						return retval;
					if (state.backtracking == 0) {
						TINYINT355_tree = (Object) adaptor.create(TINYINT355);
						adaptor.addChild(root_0, TINYINT355_tree);
					}
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:329:14: (
					// LPAREN length RPAREN )?
					int alt140 = 2;
					int LA140_0 = input.LA(1);

					if ((LA140_0 == LPAREN)) {
						alt140 = 1;
					}
					switch (alt140) {
					case 1:
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:329:15:
					// LPAREN length RPAREN
					{
						LPAREN356 = (Token) match(input, LPAREN,
								FOLLOW_LPAREN_in_column_data_type_header2525);
						if (state.failed)
							return retval;
						if (state.backtracking == 0) {
							LPAREN356_tree = (Object) adaptor.create(LPAREN356);
							adaptor.addChild(root_0, LPAREN356_tree);
						}
						pushFollow(FOLLOW_length_in_column_data_type_header2527);
						length357 = length();

						state._fsp--;
						if (state.failed)
							return retval;
						if (state.backtracking == 0)
							adaptor.addChild(root_0, length357.getTree());
						RPAREN358 = (Token) match(input, RPAREN,
								FOLLOW_RPAREN_in_column_data_type_header2529);
						if (state.failed)
							return retval;
						if (state.backtracking == 0) {
							RPAREN358_tree = (Object) adaptor.create(RPAREN358);
							adaptor.addChild(root_0, RPAREN358_tree);
						}

					}
						break;

					}

					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:329:38: (
					// UNSIGNED_SYM )?
					int alt141 = 2;
					int LA141_0 = input.LA(1);

					if ((LA141_0 == UNSIGNED_SYM)) {
						alt141 = 1;
					}
					switch (alt141) {
					case 1:
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:329:39:
					// UNSIGNED_SYM
					{
						UNSIGNED_SYM359 = (Token) match(input, UNSIGNED_SYM,
								FOLLOW_UNSIGNED_SYM_in_column_data_type_header2534);
						if (state.failed)
							return retval;
						if (state.backtracking == 0) {
							UNSIGNED_SYM359_tree = (Object) adaptor
									.create(UNSIGNED_SYM359);
							adaptor.addChild(root_0, UNSIGNED_SYM359_tree);
						}

					}
						break;

					}

					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:329:54: (
					// ZEROFILL )?
					int alt142 = 2;
					int LA142_0 = input.LA(1);

					if ((LA142_0 == ZEROFILL)) {
						alt142 = 1;
					}
					switch (alt142) {
					case 1:
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:329:55:
					// ZEROFILL
					{
						ZEROFILL360 = (Token) match(input, ZEROFILL,
								FOLLOW_ZEROFILL_in_column_data_type_header2539);
						if (state.failed)
							return retval;
						if (state.backtracking == 0) {
							ZEROFILL360_tree = (Object) adaptor
									.create(ZEROFILL360);
							adaptor.addChild(root_0, ZEROFILL360_tree);
						}

					}
						break;

					}

					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:329:66: (
					// null_or_notnull )?
					int alt143 = 2;
					int LA143_0 = input.LA(1);

					if ((LA143_0 == NOT_SYM || LA143_0 == NULL_SYM)) {
						alt143 = 1;
					}
					switch (alt143) {
					case 1:
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:329:67:
					// null_or_notnull
					{
						pushFollow(FOLLOW_null_or_notnull_in_column_data_type_header2544);
						null_or_notnull361 = null_or_notnull();

						state._fsp--;
						if (state.failed)
							return retval;
						if (state.backtracking == 0)
							adaptor.addChild(root_0,
									null_or_notnull361.getTree());

					}
						break;

					}

					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:329:85: (
					// DEFAULT number_literal )?
					int alt144 = 2;
					int LA144_0 = input.LA(1);

					if ((LA144_0 == DEFAULT)) {
						alt144 = 1;
					}
					switch (alt144) {
					case 1:
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:329:86:
					// DEFAULT number_literal
					{
						DEFAULT362 = (Token) match(input, DEFAULT,
								FOLLOW_DEFAULT_in_column_data_type_header2549);
						if (state.failed)
							return retval;
						if (state.backtracking == 0) {
							DEFAULT362_tree = (Object) adaptor
									.create(DEFAULT362);
							adaptor.addChild(root_0, DEFAULT362_tree);
						}
						pushFollow(FOLLOW_number_literal_in_column_data_type_header2551);
						number_literal363 = number_literal();

						state._fsp--;
						if (state.failed)
							return retval;
						if (state.backtracking == 0)
							adaptor.addChild(root_0,
									number_literal363.getTree());

					}
						break;

					}

				}

			}
				break;
			case 3:
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:330:4: ( SMALLINT (
			// LPAREN length RPAREN )? ( UNSIGNED_SYM )? ( ZEROFILL )? (
			// null_or_notnull )? ( DEFAULT number_literal )? )
			{
				root_0 = (Object) adaptor.nil();

				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:330:4: ( SMALLINT
				// ( LPAREN length RPAREN )? ( UNSIGNED_SYM )? ( ZEROFILL )? (
				// null_or_notnull )? ( DEFAULT number_literal )? )
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:330:7: SMALLINT (
				// LPAREN length RPAREN )? ( UNSIGNED_SYM )? ( ZEROFILL )? (
				// null_or_notnull )? ( DEFAULT number_literal )?
				{
					SMALLINT364 = (Token) match(input, SMALLINT,
							FOLLOW_SMALLINT_in_column_data_type_header2564);
					if (state.failed)
						return retval;
					if (state.backtracking == 0) {
						SMALLINT364_tree = (Object) adaptor.create(SMALLINT364);
						adaptor.addChild(root_0, SMALLINT364_tree);
					}
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:330:15: (
					// LPAREN length RPAREN )?
					int alt145 = 2;
					int LA145_0 = input.LA(1);

					if ((LA145_0 == LPAREN)) {
						alt145 = 1;
					}
					switch (alt145) {
					case 1:
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:330:16:
					// LPAREN length RPAREN
					{
						LPAREN365 = (Token) match(input, LPAREN,
								FOLLOW_LPAREN_in_column_data_type_header2566);
						if (state.failed)
							return retval;
						if (state.backtracking == 0) {
							LPAREN365_tree = (Object) adaptor.create(LPAREN365);
							adaptor.addChild(root_0, LPAREN365_tree);
						}
						pushFollow(FOLLOW_length_in_column_data_type_header2568);
						length366 = length();

						state._fsp--;
						if (state.failed)
							return retval;
						if (state.backtracking == 0)
							adaptor.addChild(root_0, length366.getTree());
						RPAREN367 = (Token) match(input, RPAREN,
								FOLLOW_RPAREN_in_column_data_type_header2570);
						if (state.failed)
							return retval;
						if (state.backtracking == 0) {
							RPAREN367_tree = (Object) adaptor.create(RPAREN367);
							adaptor.addChild(root_0, RPAREN367_tree);
						}

					}
						break;

					}

					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:330:39: (
					// UNSIGNED_SYM )?
					int alt146 = 2;
					int LA146_0 = input.LA(1);

					if ((LA146_0 == UNSIGNED_SYM)) {
						alt146 = 1;
					}
					switch (alt146) {
					case 1:
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:330:40:
					// UNSIGNED_SYM
					{
						UNSIGNED_SYM368 = (Token) match(input, UNSIGNED_SYM,
								FOLLOW_UNSIGNED_SYM_in_column_data_type_header2575);
						if (state.failed)
							return retval;
						if (state.backtracking == 0) {
							UNSIGNED_SYM368_tree = (Object) adaptor
									.create(UNSIGNED_SYM368);
							adaptor.addChild(root_0, UNSIGNED_SYM368_tree);
						}

					}
						break;

					}

					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:330:55: (
					// ZEROFILL )?
					int alt147 = 2;
					int LA147_0 = input.LA(1);

					if ((LA147_0 == ZEROFILL)) {
						alt147 = 1;
					}
					switch (alt147) {
					case 1:
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:330:56:
					// ZEROFILL
					{
						ZEROFILL369 = (Token) match(input, ZEROFILL,
								FOLLOW_ZEROFILL_in_column_data_type_header2580);
						if (state.failed)
							return retval;
						if (state.backtracking == 0) {
							ZEROFILL369_tree = (Object) adaptor
									.create(ZEROFILL369);
							adaptor.addChild(root_0, ZEROFILL369_tree);
						}

					}
						break;

					}

					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:330:67: (
					// null_or_notnull )?
					int alt148 = 2;
					int LA148_0 = input.LA(1);

					if ((LA148_0 == NOT_SYM || LA148_0 == NULL_SYM)) {
						alt148 = 1;
					}
					switch (alt148) {
					case 1:
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:330:68:
					// null_or_notnull
					{
						pushFollow(FOLLOW_null_or_notnull_in_column_data_type_header2585);
						null_or_notnull370 = null_or_notnull();

						state._fsp--;
						if (state.failed)
							return retval;
						if (state.backtracking == 0)
							adaptor.addChild(root_0,
									null_or_notnull370.getTree());

					}
						break;

					}

					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:330:86: (
					// DEFAULT number_literal )?
					int alt149 = 2;
					int LA149_0 = input.LA(1);

					if ((LA149_0 == DEFAULT)) {
						alt149 = 1;
					}
					switch (alt149) {
					case 1:
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:330:87:
					// DEFAULT number_literal
					{
						DEFAULT371 = (Token) match(input, DEFAULT,
								FOLLOW_DEFAULT_in_column_data_type_header2590);
						if (state.failed)
							return retval;
						if (state.backtracking == 0) {
							DEFAULT371_tree = (Object) adaptor
									.create(DEFAULT371);
							adaptor.addChild(root_0, DEFAULT371_tree);
						}
						pushFollow(FOLLOW_number_literal_in_column_data_type_header2592);
						number_literal372 = number_literal();

						state._fsp--;
						if (state.failed)
							return retval;
						if (state.backtracking == 0)
							adaptor.addChild(root_0,
									number_literal372.getTree());

					}
						break;

					}

				}

			}
				break;
			case 4:
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:331:4: ( MEDIUMINT (
			// LPAREN length RPAREN )? ( UNSIGNED_SYM )? ( ZEROFILL )? (
			// null_or_notnull )? ( DEFAULT number_literal )? )
			{
				root_0 = (Object) adaptor.nil();

				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:331:4: (
				// MEDIUMINT ( LPAREN length RPAREN )? ( UNSIGNED_SYM )? (
				// ZEROFILL )? ( null_or_notnull )? ( DEFAULT number_literal )?
				// )
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:331:7: MEDIUMINT
				// ( LPAREN length RPAREN )? ( UNSIGNED_SYM )? ( ZEROFILL )? (
				// null_or_notnull )? ( DEFAULT number_literal )?
				{
					MEDIUMINT373 = (Token) match(input, MEDIUMINT,
							FOLLOW_MEDIUMINT_in_column_data_type_header2605);
					if (state.failed)
						return retval;
					if (state.backtracking == 0) {
						MEDIUMINT373_tree = (Object) adaptor
								.create(MEDIUMINT373);
						adaptor.addChild(root_0, MEDIUMINT373_tree);
					}
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:331:16: (
					// LPAREN length RPAREN )?
					int alt150 = 2;
					int LA150_0 = input.LA(1);

					if ((LA150_0 == LPAREN)) {
						alt150 = 1;
					}
					switch (alt150) {
					case 1:
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:331:17:
					// LPAREN length RPAREN
					{
						LPAREN374 = (Token) match(input, LPAREN,
								FOLLOW_LPAREN_in_column_data_type_header2607);
						if (state.failed)
							return retval;
						if (state.backtracking == 0) {
							LPAREN374_tree = (Object) adaptor.create(LPAREN374);
							adaptor.addChild(root_0, LPAREN374_tree);
						}
						pushFollow(FOLLOW_length_in_column_data_type_header2609);
						length375 = length();

						state._fsp--;
						if (state.failed)
							return retval;
						if (state.backtracking == 0)
							adaptor.addChild(root_0, length375.getTree());
						RPAREN376 = (Token) match(input, RPAREN,
								FOLLOW_RPAREN_in_column_data_type_header2611);
						if (state.failed)
							return retval;
						if (state.backtracking == 0) {
							RPAREN376_tree = (Object) adaptor.create(RPAREN376);
							adaptor.addChild(root_0, RPAREN376_tree);
						}

					}
						break;

					}

					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:331:40: (
					// UNSIGNED_SYM )?
					int alt151 = 2;
					int LA151_0 = input.LA(1);

					if ((LA151_0 == UNSIGNED_SYM)) {
						alt151 = 1;
					}
					switch (alt151) {
					case 1:
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:331:41:
					// UNSIGNED_SYM
					{
						UNSIGNED_SYM377 = (Token) match(input, UNSIGNED_SYM,
								FOLLOW_UNSIGNED_SYM_in_column_data_type_header2616);
						if (state.failed)
							return retval;
						if (state.backtracking == 0) {
							UNSIGNED_SYM377_tree = (Object) adaptor
									.create(UNSIGNED_SYM377);
							adaptor.addChild(root_0, UNSIGNED_SYM377_tree);
						}

					}
						break;

					}

					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:331:56: (
					// ZEROFILL )?
					int alt152 = 2;
					int LA152_0 = input.LA(1);

					if ((LA152_0 == ZEROFILL)) {
						alt152 = 1;
					}
					switch (alt152) {
					case 1:
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:331:57:
					// ZEROFILL
					{
						ZEROFILL378 = (Token) match(input, ZEROFILL,
								FOLLOW_ZEROFILL_in_column_data_type_header2621);
						if (state.failed)
							return retval;
						if (state.backtracking == 0) {
							ZEROFILL378_tree = (Object) adaptor
									.create(ZEROFILL378);
							adaptor.addChild(root_0, ZEROFILL378_tree);
						}

					}
						break;

					}

					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:331:68: (
					// null_or_notnull )?
					int alt153 = 2;
					int LA153_0 = input.LA(1);

					if ((LA153_0 == NOT_SYM || LA153_0 == NULL_SYM)) {
						alt153 = 1;
					}
					switch (alt153) {
					case 1:
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:331:69:
					// null_or_notnull
					{
						pushFollow(FOLLOW_null_or_notnull_in_column_data_type_header2626);
						null_or_notnull379 = null_or_notnull();

						state._fsp--;
						if (state.failed)
							return retval;
						if (state.backtracking == 0)
							adaptor.addChild(root_0,
									null_or_notnull379.getTree());

					}
						break;

					}

					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:331:87: (
					// DEFAULT number_literal )?
					int alt154 = 2;
					int LA154_0 = input.LA(1);

					if ((LA154_0 == DEFAULT)) {
						alt154 = 1;
					}
					switch (alt154) {
					case 1:
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:331:88:
					// DEFAULT number_literal
					{
						DEFAULT380 = (Token) match(input, DEFAULT,
								FOLLOW_DEFAULT_in_column_data_type_header2631);
						if (state.failed)
							return retval;
						if (state.backtracking == 0) {
							DEFAULT380_tree = (Object) adaptor
									.create(DEFAULT380);
							adaptor.addChild(root_0, DEFAULT380_tree);
						}
						pushFollow(FOLLOW_number_literal_in_column_data_type_header2633);
						number_literal381 = number_literal();

						state._fsp--;
						if (state.failed)
							return retval;
						if (state.backtracking == 0)
							adaptor.addChild(root_0,
									number_literal381.getTree());

					}
						break;

					}

				}

			}
				break;
			case 5:
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:332:4: ( INT_SYM (
			// LPAREN length RPAREN )? ( UNSIGNED_SYM )? ( ZEROFILL )? (
			// null_or_notnull )? ( DEFAULT number_literal )? )
			{
				root_0 = (Object) adaptor.nil();

				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:332:4: ( INT_SYM
				// ( LPAREN length RPAREN )? ( UNSIGNED_SYM )? ( ZEROFILL )? (
				// null_or_notnull )? ( DEFAULT number_literal )? )
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:332:7: INT_SYM (
				// LPAREN length RPAREN )? ( UNSIGNED_SYM )? ( ZEROFILL )? (
				// null_or_notnull )? ( DEFAULT number_literal )?
				{
					INT_SYM382 = (Token) match(input, INT_SYM,
							FOLLOW_INT_SYM_in_column_data_type_header2646);
					if (state.failed)
						return retval;
					if (state.backtracking == 0) {
						INT_SYM382_tree = (Object) adaptor.create(INT_SYM382);
						adaptor.addChild(root_0, INT_SYM382_tree);
					}
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:332:14: (
					// LPAREN length RPAREN )?
					int alt155 = 2;
					int LA155_0 = input.LA(1);

					if ((LA155_0 == LPAREN)) {
						alt155 = 1;
					}
					switch (alt155) {
					case 1:
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:332:15:
					// LPAREN length RPAREN
					{
						LPAREN383 = (Token) match(input, LPAREN,
								FOLLOW_LPAREN_in_column_data_type_header2648);
						if (state.failed)
							return retval;
						if (state.backtracking == 0) {
							LPAREN383_tree = (Object) adaptor.create(LPAREN383);
							adaptor.addChild(root_0, LPAREN383_tree);
						}
						pushFollow(FOLLOW_length_in_column_data_type_header2650);
						length384 = length();

						state._fsp--;
						if (state.failed)
							return retval;
						if (state.backtracking == 0)
							adaptor.addChild(root_0, length384.getTree());
						RPAREN385 = (Token) match(input, RPAREN,
								FOLLOW_RPAREN_in_column_data_type_header2652);
						if (state.failed)
							return retval;
						if (state.backtracking == 0) {
							RPAREN385_tree = (Object) adaptor.create(RPAREN385);
							adaptor.addChild(root_0, RPAREN385_tree);
						}

					}
						break;

					}

					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:332:38: (
					// UNSIGNED_SYM )?
					int alt156 = 2;
					int LA156_0 = input.LA(1);

					if ((LA156_0 == UNSIGNED_SYM)) {
						alt156 = 1;
					}
					switch (alt156) {
					case 1:
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:332:39:
					// UNSIGNED_SYM
					{
						UNSIGNED_SYM386 = (Token) match(input, UNSIGNED_SYM,
								FOLLOW_UNSIGNED_SYM_in_column_data_type_header2657);
						if (state.failed)
							return retval;
						if (state.backtracking == 0) {
							UNSIGNED_SYM386_tree = (Object) adaptor
									.create(UNSIGNED_SYM386);
							adaptor.addChild(root_0, UNSIGNED_SYM386_tree);
						}

					}
						break;

					}

					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:332:54: (
					// ZEROFILL )?
					int alt157 = 2;
					int LA157_0 = input.LA(1);

					if ((LA157_0 == ZEROFILL)) {
						alt157 = 1;
					}
					switch (alt157) {
					case 1:
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:332:55:
					// ZEROFILL
					{
						ZEROFILL387 = (Token) match(input, ZEROFILL,
								FOLLOW_ZEROFILL_in_column_data_type_header2662);
						if (state.failed)
							return retval;
						if (state.backtracking == 0) {
							ZEROFILL387_tree = (Object) adaptor
									.create(ZEROFILL387);
							adaptor.addChild(root_0, ZEROFILL387_tree);
						}

					}
						break;

					}

					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:332:66: (
					// null_or_notnull )?
					int alt158 = 2;
					int LA158_0 = input.LA(1);

					if ((LA158_0 == NOT_SYM || LA158_0 == NULL_SYM)) {
						alt158 = 1;
					}
					switch (alt158) {
					case 1:
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:332:67:
					// null_or_notnull
					{
						pushFollow(FOLLOW_null_or_notnull_in_column_data_type_header2667);
						null_or_notnull388 = null_or_notnull();

						state._fsp--;
						if (state.failed)
							return retval;
						if (state.backtracking == 0)
							adaptor.addChild(root_0,
									null_or_notnull388.getTree());

					}
						break;

					}

					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:332:85: (
					// DEFAULT number_literal )?
					int alt159 = 2;
					int LA159_0 = input.LA(1);

					if ((LA159_0 == DEFAULT)) {
						alt159 = 1;
					}
					switch (alt159) {
					case 1:
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:332:86:
					// DEFAULT number_literal
					{
						DEFAULT389 = (Token) match(input, DEFAULT,
								FOLLOW_DEFAULT_in_column_data_type_header2672);
						if (state.failed)
							return retval;
						if (state.backtracking == 0) {
							DEFAULT389_tree = (Object) adaptor
									.create(DEFAULT389);
							adaptor.addChild(root_0, DEFAULT389_tree);
						}
						pushFollow(FOLLOW_number_literal_in_column_data_type_header2674);
						number_literal390 = number_literal();

						state._fsp--;
						if (state.failed)
							return retval;
						if (state.backtracking == 0)
							adaptor.addChild(root_0,
									number_literal390.getTree());

					}
						break;

					}

				}

			}
				break;
			case 6:
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:333:4: ( INTEGER_SYM
			// ( LPAREN length RPAREN )? ( UNSIGNED_SYM )? ( ZEROFILL )? (
			// null_or_notnull )? ( DEFAULT number_literal )? )
			{
				root_0 = (Object) adaptor.nil();

				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:333:4: (
				// INTEGER_SYM ( LPAREN length RPAREN )? ( UNSIGNED_SYM )? (
				// ZEROFILL )? ( null_or_notnull )? ( DEFAULT number_literal )?
				// )
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:333:7:
				// INTEGER_SYM ( LPAREN length RPAREN )? ( UNSIGNED_SYM )? (
				// ZEROFILL )? ( null_or_notnull )? ( DEFAULT number_literal )?
				{
					INTEGER_SYM391 = (Token) match(input, INTEGER_SYM,
							FOLLOW_INTEGER_SYM_in_column_data_type_header2687);
					if (state.failed)
						return retval;
					if (state.backtracking == 0) {
						INTEGER_SYM391_tree = (Object) adaptor
								.create(INTEGER_SYM391);
						adaptor.addChild(root_0, INTEGER_SYM391_tree);
					}
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:333:18: (
					// LPAREN length RPAREN )?
					int alt160 = 2;
					int LA160_0 = input.LA(1);

					if ((LA160_0 == LPAREN)) {
						alt160 = 1;
					}
					switch (alt160) {
					case 1:
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:333:19:
					// LPAREN length RPAREN
					{
						LPAREN392 = (Token) match(input, LPAREN,
								FOLLOW_LPAREN_in_column_data_type_header2689);
						if (state.failed)
							return retval;
						if (state.backtracking == 0) {
							LPAREN392_tree = (Object) adaptor.create(LPAREN392);
							adaptor.addChild(root_0, LPAREN392_tree);
						}
						pushFollow(FOLLOW_length_in_column_data_type_header2691);
						length393 = length();

						state._fsp--;
						if (state.failed)
							return retval;
						if (state.backtracking == 0)
							adaptor.addChild(root_0, length393.getTree());
						RPAREN394 = (Token) match(input, RPAREN,
								FOLLOW_RPAREN_in_column_data_type_header2693);
						if (state.failed)
							return retval;
						if (state.backtracking == 0) {
							RPAREN394_tree = (Object) adaptor.create(RPAREN394);
							adaptor.addChild(root_0, RPAREN394_tree);
						}

					}
						break;

					}

					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:333:42: (
					// UNSIGNED_SYM )?
					int alt161 = 2;
					int LA161_0 = input.LA(1);

					if ((LA161_0 == UNSIGNED_SYM)) {
						alt161 = 1;
					}
					switch (alt161) {
					case 1:
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:333:43:
					// UNSIGNED_SYM
					{
						UNSIGNED_SYM395 = (Token) match(input, UNSIGNED_SYM,
								FOLLOW_UNSIGNED_SYM_in_column_data_type_header2698);
						if (state.failed)
							return retval;
						if (state.backtracking == 0) {
							UNSIGNED_SYM395_tree = (Object) adaptor
									.create(UNSIGNED_SYM395);
							adaptor.addChild(root_0, UNSIGNED_SYM395_tree);
						}

					}
						break;

					}

					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:333:58: (
					// ZEROFILL )?
					int alt162 = 2;
					int LA162_0 = input.LA(1);

					if ((LA162_0 == ZEROFILL)) {
						alt162 = 1;
					}
					switch (alt162) {
					case 1:
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:333:59:
					// ZEROFILL
					{
						ZEROFILL396 = (Token) match(input, ZEROFILL,
								FOLLOW_ZEROFILL_in_column_data_type_header2703);
						if (state.failed)
							return retval;
						if (state.backtracking == 0) {
							ZEROFILL396_tree = (Object) adaptor
									.create(ZEROFILL396);
							adaptor.addChild(root_0, ZEROFILL396_tree);
						}

					}
						break;

					}

					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:333:70: (
					// null_or_notnull )?
					int alt163 = 2;
					int LA163_0 = input.LA(1);

					if ((LA163_0 == NOT_SYM || LA163_0 == NULL_SYM)) {
						alt163 = 1;
					}
					switch (alt163) {
					case 1:
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:333:71:
					// null_or_notnull
					{
						pushFollow(FOLLOW_null_or_notnull_in_column_data_type_header2708);
						null_or_notnull397 = null_or_notnull();

						state._fsp--;
						if (state.failed)
							return retval;
						if (state.backtracking == 0)
							adaptor.addChild(root_0,
									null_or_notnull397.getTree());

					}
						break;

					}

					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:333:89: (
					// DEFAULT number_literal )?
					int alt164 = 2;
					int LA164_0 = input.LA(1);

					if ((LA164_0 == DEFAULT)) {
						alt164 = 1;
					}
					switch (alt164) {
					case 1:
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:333:90:
					// DEFAULT number_literal
					{
						DEFAULT398 = (Token) match(input, DEFAULT,
								FOLLOW_DEFAULT_in_column_data_type_header2713);
						if (state.failed)
							return retval;
						if (state.backtracking == 0) {
							DEFAULT398_tree = (Object) adaptor
									.create(DEFAULT398);
							adaptor.addChild(root_0, DEFAULT398_tree);
						}
						pushFollow(FOLLOW_number_literal_in_column_data_type_header2715);
						number_literal399 = number_literal();

						state._fsp--;
						if (state.failed)
							return retval;
						if (state.backtracking == 0)
							adaptor.addChild(root_0,
									number_literal399.getTree());

					}
						break;

					}

				}

			}
				break;
			case 7:
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:334:4: ( BIGINT (
			// LPAREN length RPAREN )? ( UNSIGNED_SYM )? ( ZEROFILL )? (
			// null_or_notnull )? ( DEFAULT number_literal )? )
			{
				root_0 = (Object) adaptor.nil();

				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:334:4: ( BIGINT (
				// LPAREN length RPAREN )? ( UNSIGNED_SYM )? ( ZEROFILL )? (
				// null_or_notnull )? ( DEFAULT number_literal )? )
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:334:7: BIGINT (
				// LPAREN length RPAREN )? ( UNSIGNED_SYM )? ( ZEROFILL )? (
				// null_or_notnull )? ( DEFAULT number_literal )?
				{
					BIGINT400 = (Token) match(input, BIGINT,
							FOLLOW_BIGINT_in_column_data_type_header2728);
					if (state.failed)
						return retval;
					if (state.backtracking == 0) {
						BIGINT400_tree = (Object) adaptor.create(BIGINT400);
						adaptor.addChild(root_0, BIGINT400_tree);
					}
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:334:13: (
					// LPAREN length RPAREN )?
					int alt165 = 2;
					int LA165_0 = input.LA(1);

					if ((LA165_0 == LPAREN)) {
						alt165 = 1;
					}
					switch (alt165) {
					case 1:
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:334:14:
					// LPAREN length RPAREN
					{
						LPAREN401 = (Token) match(input, LPAREN,
								FOLLOW_LPAREN_in_column_data_type_header2730);
						if (state.failed)
							return retval;
						if (state.backtracking == 0) {
							LPAREN401_tree = (Object) adaptor.create(LPAREN401);
							adaptor.addChild(root_0, LPAREN401_tree);
						}
						pushFollow(FOLLOW_length_in_column_data_type_header2732);
						length402 = length();

						state._fsp--;
						if (state.failed)
							return retval;
						if (state.backtracking == 0)
							adaptor.addChild(root_0, length402.getTree());
						RPAREN403 = (Token) match(input, RPAREN,
								FOLLOW_RPAREN_in_column_data_type_header2734);
						if (state.failed)
							return retval;
						if (state.backtracking == 0) {
							RPAREN403_tree = (Object) adaptor.create(RPAREN403);
							adaptor.addChild(root_0, RPAREN403_tree);
						}

					}
						break;

					}

					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:334:37: (
					// UNSIGNED_SYM )?
					int alt166 = 2;
					int LA166_0 = input.LA(1);

					if ((LA166_0 == UNSIGNED_SYM)) {
						alt166 = 1;
					}
					switch (alt166) {
					case 1:
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:334:38:
					// UNSIGNED_SYM
					{
						UNSIGNED_SYM404 = (Token) match(input, UNSIGNED_SYM,
								FOLLOW_UNSIGNED_SYM_in_column_data_type_header2739);
						if (state.failed)
							return retval;
						if (state.backtracking == 0) {
							UNSIGNED_SYM404_tree = (Object) adaptor
									.create(UNSIGNED_SYM404);
							adaptor.addChild(root_0, UNSIGNED_SYM404_tree);
						}

					}
						break;

					}

					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:334:53: (
					// ZEROFILL )?
					int alt167 = 2;
					int LA167_0 = input.LA(1);

					if ((LA167_0 == ZEROFILL)) {
						alt167 = 1;
					}
					switch (alt167) {
					case 1:
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:334:54:
					// ZEROFILL
					{
						ZEROFILL405 = (Token) match(input, ZEROFILL,
								FOLLOW_ZEROFILL_in_column_data_type_header2744);
						if (state.failed)
							return retval;
						if (state.backtracking == 0) {
							ZEROFILL405_tree = (Object) adaptor
									.create(ZEROFILL405);
							adaptor.addChild(root_0, ZEROFILL405_tree);
						}

					}
						break;

					}

					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:334:65: (
					// null_or_notnull )?
					int alt168 = 2;
					int LA168_0 = input.LA(1);

					if ((LA168_0 == NOT_SYM || LA168_0 == NULL_SYM)) {
						alt168 = 1;
					}
					switch (alt168) {
					case 1:
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:334:66:
					// null_or_notnull
					{
						pushFollow(FOLLOW_null_or_notnull_in_column_data_type_header2749);
						null_or_notnull406 = null_or_notnull();

						state._fsp--;
						if (state.failed)
							return retval;
						if (state.backtracking == 0)
							adaptor.addChild(root_0,
									null_or_notnull406.getTree());

					}
						break;

					}

					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:334:84: (
					// DEFAULT number_literal )?
					int alt169 = 2;
					int LA169_0 = input.LA(1);

					if ((LA169_0 == DEFAULT)) {
						alt169 = 1;
					}
					switch (alt169) {
					case 1:
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:334:85:
					// DEFAULT number_literal
					{
						DEFAULT407 = (Token) match(input, DEFAULT,
								FOLLOW_DEFAULT_in_column_data_type_header2754);
						if (state.failed)
							return retval;
						if (state.backtracking == 0) {
							DEFAULT407_tree = (Object) adaptor
									.create(DEFAULT407);
							adaptor.addChild(root_0, DEFAULT407_tree);
						}
						pushFollow(FOLLOW_number_literal_in_column_data_type_header2756);
						number_literal408 = number_literal();

						state._fsp--;
						if (state.failed)
							return retval;
						if (state.backtracking == 0)
							adaptor.addChild(root_0,
									number_literal408.getTree());

					}
						break;

					}

				}

			}
				break;
			case 8:
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:335:4: ( REAL (
			// LPAREN length COMMA number_literal RPAREN )? ( UNSIGNED_SYM )? (
			// ZEROFILL )? ( null_or_notnull )? ( DEFAULT number_literal )? )
			{
				root_0 = (Object) adaptor.nil();

				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:335:4: ( REAL (
				// LPAREN length COMMA number_literal RPAREN )? ( UNSIGNED_SYM
				// )? ( ZEROFILL )? ( null_or_notnull )? ( DEFAULT
				// number_literal )? )
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:335:7: REAL (
				// LPAREN length COMMA number_literal RPAREN )? ( UNSIGNED_SYM
				// )? ( ZEROFILL )? ( null_or_notnull )? ( DEFAULT
				// number_literal )?
				{
					REAL409 = (Token) match(input, REAL,
							FOLLOW_REAL_in_column_data_type_header2769);
					if (state.failed)
						return retval;
					if (state.backtracking == 0) {
						REAL409_tree = (Object) adaptor.create(REAL409);
						adaptor.addChild(root_0, REAL409_tree);
					}
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:335:11: (
					// LPAREN length COMMA number_literal RPAREN )?
					int alt170 = 2;
					int LA170_0 = input.LA(1);

					if ((LA170_0 == LPAREN)) {
						alt170 = 1;
					}
					switch (alt170) {
					case 1:
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:335:12:
					// LPAREN length COMMA number_literal RPAREN
					{
						LPAREN410 = (Token) match(input, LPAREN,
								FOLLOW_LPAREN_in_column_data_type_header2771);
						if (state.failed)
							return retval;
						if (state.backtracking == 0) {
							LPAREN410_tree = (Object) adaptor.create(LPAREN410);
							adaptor.addChild(root_0, LPAREN410_tree);
						}
						pushFollow(FOLLOW_length_in_column_data_type_header2773);
						length411 = length();

						state._fsp--;
						if (state.failed)
							return retval;
						if (state.backtracking == 0)
							adaptor.addChild(root_0, length411.getTree());
						COMMA412 = (Token) match(input, COMMA,
								FOLLOW_COMMA_in_column_data_type_header2775);
						if (state.failed)
							return retval;
						if (state.backtracking == 0) {
							COMMA412_tree = (Object) adaptor.create(COMMA412);
							adaptor.addChild(root_0, COMMA412_tree);
						}
						pushFollow(FOLLOW_number_literal_in_column_data_type_header2777);
						number_literal413 = number_literal();

						state._fsp--;
						if (state.failed)
							return retval;
						if (state.backtracking == 0)
							adaptor.addChild(root_0,
									number_literal413.getTree());
						RPAREN414 = (Token) match(input, RPAREN,
								FOLLOW_RPAREN_in_column_data_type_header2779);
						if (state.failed)
							return retval;
						if (state.backtracking == 0) {
							RPAREN414_tree = (Object) adaptor.create(RPAREN414);
							adaptor.addChild(root_0, RPAREN414_tree);
						}

					}
						break;

					}

					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:335:56: (
					// UNSIGNED_SYM )?
					int alt171 = 2;
					int LA171_0 = input.LA(1);

					if ((LA171_0 == UNSIGNED_SYM)) {
						alt171 = 1;
					}
					switch (alt171) {
					case 1:
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:335:57:
					// UNSIGNED_SYM
					{
						UNSIGNED_SYM415 = (Token) match(input, UNSIGNED_SYM,
								FOLLOW_UNSIGNED_SYM_in_column_data_type_header2784);
						if (state.failed)
							return retval;
						if (state.backtracking == 0) {
							UNSIGNED_SYM415_tree = (Object) adaptor
									.create(UNSIGNED_SYM415);
							adaptor.addChild(root_0, UNSIGNED_SYM415_tree);
						}

					}
						break;

					}

					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:335:72: (
					// ZEROFILL )?
					int alt172 = 2;
					int LA172_0 = input.LA(1);

					if ((LA172_0 == ZEROFILL)) {
						alt172 = 1;
					}
					switch (alt172) {
					case 1:
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:335:73:
					// ZEROFILL
					{
						ZEROFILL416 = (Token) match(input, ZEROFILL,
								FOLLOW_ZEROFILL_in_column_data_type_header2789);
						if (state.failed)
							return retval;
						if (state.backtracking == 0) {
							ZEROFILL416_tree = (Object) adaptor
									.create(ZEROFILL416);
							adaptor.addChild(root_0, ZEROFILL416_tree);
						}

					}
						break;

					}

					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:335:84: (
					// null_or_notnull )?
					int alt173 = 2;
					int LA173_0 = input.LA(1);

					if ((LA173_0 == NOT_SYM || LA173_0 == NULL_SYM)) {
						alt173 = 1;
					}
					switch (alt173) {
					case 1:
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:335:85:
					// null_or_notnull
					{
						pushFollow(FOLLOW_null_or_notnull_in_column_data_type_header2794);
						null_or_notnull417 = null_or_notnull();

						state._fsp--;
						if (state.failed)
							return retval;
						if (state.backtracking == 0)
							adaptor.addChild(root_0,
									null_or_notnull417.getTree());

					}
						break;

					}

					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:335:103: (
					// DEFAULT number_literal )?
					int alt174 = 2;
					int LA174_0 = input.LA(1);

					if ((LA174_0 == DEFAULT)) {
						alt174 = 1;
					}
					switch (alt174) {
					case 1:
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:335:104:
					// DEFAULT number_literal
					{
						DEFAULT418 = (Token) match(input, DEFAULT,
								FOLLOW_DEFAULT_in_column_data_type_header2799);
						if (state.failed)
							return retval;
						if (state.backtracking == 0) {
							DEFAULT418_tree = (Object) adaptor
									.create(DEFAULT418);
							adaptor.addChild(root_0, DEFAULT418_tree);
						}
						pushFollow(FOLLOW_number_literal_in_column_data_type_header2801);
						number_literal419 = number_literal();

						state._fsp--;
						if (state.failed)
							return retval;
						if (state.backtracking == 0)
							adaptor.addChild(root_0,
									number_literal419.getTree());

					}
						break;

					}

				}

			}
				break;
			case 9:
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:336:4: ( DOUBLE_SYM (
			// LPAREN length COMMA number_literal RPAREN )? ( UNSIGNED_SYM )? (
			// ZEROFILL )? ( null_or_notnull )? ( DEFAULT number_literal )? )
			{
				root_0 = (Object) adaptor.nil();

				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:336:4: (
				// DOUBLE_SYM ( LPAREN length COMMA number_literal RPAREN )? (
				// UNSIGNED_SYM )? ( ZEROFILL )? ( null_or_notnull )? ( DEFAULT
				// number_literal )? )
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:336:7: DOUBLE_SYM
				// ( LPAREN length COMMA number_literal RPAREN )? ( UNSIGNED_SYM
				// )? ( ZEROFILL )? ( null_or_notnull )? ( DEFAULT
				// number_literal )?
				{
					DOUBLE_SYM420 = (Token) match(input, DOUBLE_SYM,
							FOLLOW_DOUBLE_SYM_in_column_data_type_header2814);
					if (state.failed)
						return retval;
					if (state.backtracking == 0) {
						DOUBLE_SYM420_tree = (Object) adaptor
								.create(DOUBLE_SYM420);
						adaptor.addChild(root_0, DOUBLE_SYM420_tree);
					}
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:336:17: (
					// LPAREN length COMMA number_literal RPAREN )?
					int alt175 = 2;
					int LA175_0 = input.LA(1);

					if ((LA175_0 == LPAREN)) {
						alt175 = 1;
					}
					switch (alt175) {
					case 1:
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:336:18:
					// LPAREN length COMMA number_literal RPAREN
					{
						LPAREN421 = (Token) match(input, LPAREN,
								FOLLOW_LPAREN_in_column_data_type_header2816);
						if (state.failed)
							return retval;
						if (state.backtracking == 0) {
							LPAREN421_tree = (Object) adaptor.create(LPAREN421);
							adaptor.addChild(root_0, LPAREN421_tree);
						}
						pushFollow(FOLLOW_length_in_column_data_type_header2818);
						length422 = length();

						state._fsp--;
						if (state.failed)
							return retval;
						if (state.backtracking == 0)
							adaptor.addChild(root_0, length422.getTree());
						COMMA423 = (Token) match(input, COMMA,
								FOLLOW_COMMA_in_column_data_type_header2820);
						if (state.failed)
							return retval;
						if (state.backtracking == 0) {
							COMMA423_tree = (Object) adaptor.create(COMMA423);
							adaptor.addChild(root_0, COMMA423_tree);
						}
						pushFollow(FOLLOW_number_literal_in_column_data_type_header2822);
						number_literal424 = number_literal();

						state._fsp--;
						if (state.failed)
							return retval;
						if (state.backtracking == 0)
							adaptor.addChild(root_0,
									number_literal424.getTree());
						RPAREN425 = (Token) match(input, RPAREN,
								FOLLOW_RPAREN_in_column_data_type_header2824);
						if (state.failed)
							return retval;
						if (state.backtracking == 0) {
							RPAREN425_tree = (Object) adaptor.create(RPAREN425);
							adaptor.addChild(root_0, RPAREN425_tree);
						}

					}
						break;

					}

					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:336:62: (
					// UNSIGNED_SYM )?
					int alt176 = 2;
					int LA176_0 = input.LA(1);

					if ((LA176_0 == UNSIGNED_SYM)) {
						alt176 = 1;
					}
					switch (alt176) {
					case 1:
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:336:63:
					// UNSIGNED_SYM
					{
						UNSIGNED_SYM426 = (Token) match(input, UNSIGNED_SYM,
								FOLLOW_UNSIGNED_SYM_in_column_data_type_header2829);
						if (state.failed)
							return retval;
						if (state.backtracking == 0) {
							UNSIGNED_SYM426_tree = (Object) adaptor
									.create(UNSIGNED_SYM426);
							adaptor.addChild(root_0, UNSIGNED_SYM426_tree);
						}

					}
						break;

					}

					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:336:78: (
					// ZEROFILL )?
					int alt177 = 2;
					int LA177_0 = input.LA(1);

					if ((LA177_0 == ZEROFILL)) {
						alt177 = 1;
					}
					switch (alt177) {
					case 1:
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:336:79:
					// ZEROFILL
					{
						ZEROFILL427 = (Token) match(input, ZEROFILL,
								FOLLOW_ZEROFILL_in_column_data_type_header2834);
						if (state.failed)
							return retval;
						if (state.backtracking == 0) {
							ZEROFILL427_tree = (Object) adaptor
									.create(ZEROFILL427);
							adaptor.addChild(root_0, ZEROFILL427_tree);
						}

					}
						break;

					}

					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:336:90: (
					// null_or_notnull )?
					int alt178 = 2;
					int LA178_0 = input.LA(1);

					if ((LA178_0 == NOT_SYM || LA178_0 == NULL_SYM)) {
						alt178 = 1;
					}
					switch (alt178) {
					case 1:
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:336:91:
					// null_or_notnull
					{
						pushFollow(FOLLOW_null_or_notnull_in_column_data_type_header2839);
						null_or_notnull428 = null_or_notnull();

						state._fsp--;
						if (state.failed)
							return retval;
						if (state.backtracking == 0)
							adaptor.addChild(root_0,
									null_or_notnull428.getTree());

					}
						break;

					}

					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:336:109: (
					// DEFAULT number_literal )?
					int alt179 = 2;
					int LA179_0 = input.LA(1);

					if ((LA179_0 == DEFAULT)) {
						alt179 = 1;
					}
					switch (alt179) {
					case 1:
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:336:110:
					// DEFAULT number_literal
					{
						DEFAULT429 = (Token) match(input, DEFAULT,
								FOLLOW_DEFAULT_in_column_data_type_header2844);
						if (state.failed)
							return retval;
						if (state.backtracking == 0) {
							DEFAULT429_tree = (Object) adaptor
									.create(DEFAULT429);
							adaptor.addChild(root_0, DEFAULT429_tree);
						}
						pushFollow(FOLLOW_number_literal_in_column_data_type_header2846);
						number_literal430 = number_literal();

						state._fsp--;
						if (state.failed)
							return retval;
						if (state.backtracking == 0)
							adaptor.addChild(root_0,
									number_literal430.getTree());

					}
						break;

					}

				}

			}
				break;
			case 10:
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:337:4: ( FLOAT_SYM (
			// LPAREN length COMMA number_literal RPAREN )? ( UNSIGNED_SYM )? (
			// ZEROFILL )? ( null_or_notnull )? ( DEFAULT number_literal )? )
			{
				root_0 = (Object) adaptor.nil();

				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:337:4: (
				// FLOAT_SYM ( LPAREN length COMMA number_literal RPAREN )? (
				// UNSIGNED_SYM )? ( ZEROFILL )? ( null_or_notnull )? ( DEFAULT
				// number_literal )? )
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:337:7: FLOAT_SYM
				// ( LPAREN length COMMA number_literal RPAREN )? ( UNSIGNED_SYM
				// )? ( ZEROFILL )? ( null_or_notnull )? ( DEFAULT
				// number_literal )?
				{
					FLOAT_SYM431 = (Token) match(input, FLOAT_SYM,
							FOLLOW_FLOAT_SYM_in_column_data_type_header2859);
					if (state.failed)
						return retval;
					if (state.backtracking == 0) {
						FLOAT_SYM431_tree = (Object) adaptor
								.create(FLOAT_SYM431);
						adaptor.addChild(root_0, FLOAT_SYM431_tree);
					}
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:337:16: (
					// LPAREN length COMMA number_literal RPAREN )?
					int alt180 = 2;
					int LA180_0 = input.LA(1);

					if ((LA180_0 == LPAREN)) {
						alt180 = 1;
					}
					switch (alt180) {
					case 1:
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:337:17:
					// LPAREN length COMMA number_literal RPAREN
					{
						LPAREN432 = (Token) match(input, LPAREN,
								FOLLOW_LPAREN_in_column_data_type_header2861);
						if (state.failed)
							return retval;
						if (state.backtracking == 0) {
							LPAREN432_tree = (Object) adaptor.create(LPAREN432);
							adaptor.addChild(root_0, LPAREN432_tree);
						}
						pushFollow(FOLLOW_length_in_column_data_type_header2863);
						length433 = length();

						state._fsp--;
						if (state.failed)
							return retval;
						if (state.backtracking == 0)
							adaptor.addChild(root_0, length433.getTree());
						COMMA434 = (Token) match(input, COMMA,
								FOLLOW_COMMA_in_column_data_type_header2865);
						if (state.failed)
							return retval;
						if (state.backtracking == 0) {
							COMMA434_tree = (Object) adaptor.create(COMMA434);
							adaptor.addChild(root_0, COMMA434_tree);
						}
						pushFollow(FOLLOW_number_literal_in_column_data_type_header2867);
						number_literal435 = number_literal();

						state._fsp--;
						if (state.failed)
							return retval;
						if (state.backtracking == 0)
							adaptor.addChild(root_0,
									number_literal435.getTree());
						RPAREN436 = (Token) match(input, RPAREN,
								FOLLOW_RPAREN_in_column_data_type_header2869);
						if (state.failed)
							return retval;
						if (state.backtracking == 0) {
							RPAREN436_tree = (Object) adaptor.create(RPAREN436);
							adaptor.addChild(root_0, RPAREN436_tree);
						}

					}
						break;

					}

					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:337:61: (
					// UNSIGNED_SYM )?
					int alt181 = 2;
					int LA181_0 = input.LA(1);

					if ((LA181_0 == UNSIGNED_SYM)) {
						alt181 = 1;
					}
					switch (alt181) {
					case 1:
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:337:62:
					// UNSIGNED_SYM
					{
						UNSIGNED_SYM437 = (Token) match(input, UNSIGNED_SYM,
								FOLLOW_UNSIGNED_SYM_in_column_data_type_header2874);
						if (state.failed)
							return retval;
						if (state.backtracking == 0) {
							UNSIGNED_SYM437_tree = (Object) adaptor
									.create(UNSIGNED_SYM437);
							adaptor.addChild(root_0, UNSIGNED_SYM437_tree);
						}

					}
						break;

					}

					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:337:77: (
					// ZEROFILL )?
					int alt182 = 2;
					int LA182_0 = input.LA(1);

					if ((LA182_0 == ZEROFILL)) {
						alt182 = 1;
					}
					switch (alt182) {
					case 1:
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:337:78:
					// ZEROFILL
					{
						ZEROFILL438 = (Token) match(input, ZEROFILL,
								FOLLOW_ZEROFILL_in_column_data_type_header2879);
						if (state.failed)
							return retval;
						if (state.backtracking == 0) {
							ZEROFILL438_tree = (Object) adaptor
									.create(ZEROFILL438);
							adaptor.addChild(root_0, ZEROFILL438_tree);
						}

					}
						break;

					}

					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:337:89: (
					// null_or_notnull )?
					int alt183 = 2;
					int LA183_0 = input.LA(1);

					if ((LA183_0 == NOT_SYM || LA183_0 == NULL_SYM)) {
						alt183 = 1;
					}
					switch (alt183) {
					case 1:
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:337:90:
					// null_or_notnull
					{
						pushFollow(FOLLOW_null_or_notnull_in_column_data_type_header2884);
						null_or_notnull439 = null_or_notnull();

						state._fsp--;
						if (state.failed)
							return retval;
						if (state.backtracking == 0)
							adaptor.addChild(root_0,
									null_or_notnull439.getTree());

					}
						break;

					}

					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:337:108: (
					// DEFAULT number_literal )?
					int alt184 = 2;
					int LA184_0 = input.LA(1);

					if ((LA184_0 == DEFAULT)) {
						alt184 = 1;
					}
					switch (alt184) {
					case 1:
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:337:109:
					// DEFAULT number_literal
					{
						DEFAULT440 = (Token) match(input, DEFAULT,
								FOLLOW_DEFAULT_in_column_data_type_header2889);
						if (state.failed)
							return retval;
						if (state.backtracking == 0) {
							DEFAULT440_tree = (Object) adaptor
									.create(DEFAULT440);
							adaptor.addChild(root_0, DEFAULT440_tree);
						}
						pushFollow(FOLLOW_number_literal_in_column_data_type_header2891);
						number_literal441 = number_literal();

						state._fsp--;
						if (state.failed)
							return retval;
						if (state.backtracking == 0)
							adaptor.addChild(root_0,
									number_literal441.getTree());

					}
						break;

					}

				}

			}
				break;
			case 11:
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:338:4: ( DECIMAL_SYM
			// ( LPAREN length ( COMMA number_literal )? RPAREN )? (
			// UNSIGNED_SYM )? ( ZEROFILL )? ( null_or_notnull )? ( DEFAULT
			// number_literal )? )
			{
				root_0 = (Object) adaptor.nil();

				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:338:4: (
				// DECIMAL_SYM ( LPAREN length ( COMMA number_literal )? RPAREN
				// )? ( UNSIGNED_SYM )? ( ZEROFILL )? ( null_or_notnull )? (
				// DEFAULT number_literal )? )
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:338:7:
				// DECIMAL_SYM ( LPAREN length ( COMMA number_literal )? RPAREN
				// )? ( UNSIGNED_SYM )? ( ZEROFILL )? ( null_or_notnull )? (
				// DEFAULT number_literal )?
				{
					DECIMAL_SYM442 = (Token) match(input, DECIMAL_SYM,
							FOLLOW_DECIMAL_SYM_in_column_data_type_header2904);
					if (state.failed)
						return retval;
					if (state.backtracking == 0) {
						DECIMAL_SYM442_tree = (Object) adaptor
								.create(DECIMAL_SYM442);
						adaptor.addChild(root_0, DECIMAL_SYM442_tree);
					}
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:338:18: (
					// LPAREN length ( COMMA number_literal )? RPAREN )?
					int alt186 = 2;
					int LA186_0 = input.LA(1);

					if ((LA186_0 == LPAREN)) {
						alt186 = 1;
					}
					switch (alt186) {
					case 1:
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:338:19:
					// LPAREN length ( COMMA number_literal )? RPAREN
					{
						LPAREN443 = (Token) match(input, LPAREN,
								FOLLOW_LPAREN_in_column_data_type_header2906);
						if (state.failed)
							return retval;
						if (state.backtracking == 0) {
							LPAREN443_tree = (Object) adaptor.create(LPAREN443);
							adaptor.addChild(root_0, LPAREN443_tree);
						}
						pushFollow(FOLLOW_length_in_column_data_type_header2908);
						length444 = length();

						state._fsp--;
						if (state.failed)
							return retval;
						if (state.backtracking == 0)
							adaptor.addChild(root_0, length444.getTree());
						// C:\\Users\\grand\\Desktop\\another\\MySQL.g:338:32: (
						// COMMA number_literal )?
						int alt185 = 2;
						int LA185_0 = input.LA(1);

						if ((LA185_0 == COMMA)) {
							alt185 = 1;
						}
						switch (alt185) {
						case 1:
						// C:\\Users\\grand\\Desktop\\another\\MySQL.g:338:34:
						// COMMA number_literal
						{
							COMMA445 = (Token) match(input, COMMA,
									FOLLOW_COMMA_in_column_data_type_header2911);
							if (state.failed)
								return retval;
							if (state.backtracking == 0) {
								COMMA445_tree = (Object) adaptor
										.create(COMMA445);
								adaptor.addChild(root_0, COMMA445_tree);
							}
							pushFollow(FOLLOW_number_literal_in_column_data_type_header2913);
							number_literal446 = number_literal();

							state._fsp--;
							if (state.failed)
								return retval;
							if (state.backtracking == 0)
								adaptor.addChild(root_0,
										number_literal446.getTree());

						}
							break;

						}

						RPAREN447 = (Token) match(input, RPAREN,
								FOLLOW_RPAREN_in_column_data_type_header2917);
						if (state.failed)
							return retval;
						if (state.backtracking == 0) {
							RPAREN447_tree = (Object) adaptor.create(RPAREN447);
							adaptor.addChild(root_0, RPAREN447_tree);
						}

					}
						break;

					}

					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:338:66: (
					// UNSIGNED_SYM )?
					int alt187 = 2;
					int LA187_0 = input.LA(1);

					if ((LA187_0 == UNSIGNED_SYM)) {
						alt187 = 1;
					}
					switch (alt187) {
					case 1:
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:338:67:
					// UNSIGNED_SYM
					{
						UNSIGNED_SYM448 = (Token) match(input, UNSIGNED_SYM,
								FOLLOW_UNSIGNED_SYM_in_column_data_type_header2922);
						if (state.failed)
							return retval;
						if (state.backtracking == 0) {
							UNSIGNED_SYM448_tree = (Object) adaptor
									.create(UNSIGNED_SYM448);
							adaptor.addChild(root_0, UNSIGNED_SYM448_tree);
						}

					}
						break;

					}

					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:338:82: (
					// ZEROFILL )?
					int alt188 = 2;
					int LA188_0 = input.LA(1);

					if ((LA188_0 == ZEROFILL)) {
						alt188 = 1;
					}
					switch (alt188) {
					case 1:
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:338:83:
					// ZEROFILL
					{
						ZEROFILL449 = (Token) match(input, ZEROFILL,
								FOLLOW_ZEROFILL_in_column_data_type_header2927);
						if (state.failed)
							return retval;
						if (state.backtracking == 0) {
							ZEROFILL449_tree = (Object) adaptor
									.create(ZEROFILL449);
							adaptor.addChild(root_0, ZEROFILL449_tree);
						}

					}
						break;

					}

					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:338:94: (
					// null_or_notnull )?
					int alt189 = 2;
					int LA189_0 = input.LA(1);

					if ((LA189_0 == NOT_SYM || LA189_0 == NULL_SYM)) {
						alt189 = 1;
					}
					switch (alt189) {
					case 1:
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:338:95:
					// null_or_notnull
					{
						pushFollow(FOLLOW_null_or_notnull_in_column_data_type_header2932);
						null_or_notnull450 = null_or_notnull();

						state._fsp--;
						if (state.failed)
							return retval;
						if (state.backtracking == 0)
							adaptor.addChild(root_0,
									null_or_notnull450.getTree());

					}
						break;

					}

					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:338:113: (
					// DEFAULT number_literal )?
					int alt190 = 2;
					int LA190_0 = input.LA(1);

					if ((LA190_0 == DEFAULT)) {
						alt190 = 1;
					}
					switch (alt190) {
					case 1:
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:338:114:
					// DEFAULT number_literal
					{
						DEFAULT451 = (Token) match(input, DEFAULT,
								FOLLOW_DEFAULT_in_column_data_type_header2937);
						if (state.failed)
							return retval;
						if (state.backtracking == 0) {
							DEFAULT451_tree = (Object) adaptor
									.create(DEFAULT451);
							adaptor.addChild(root_0, DEFAULT451_tree);
						}
						pushFollow(FOLLOW_number_literal_in_column_data_type_header2939);
						number_literal452 = number_literal();

						state._fsp--;
						if (state.failed)
							return retval;
						if (state.backtracking == 0)
							adaptor.addChild(root_0,
									number_literal452.getTree());

					}
						break;

					}

				}

			}
				break;
			case 12:
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:339:4: ( NUMERIC_SYM
			// ( LPAREN length ( COMMA number_literal )? RPAREN )? (
			// UNSIGNED_SYM )? ( ZEROFILL )? ( null_or_notnull )? ( DEFAULT
			// number_literal )? )
			{
				root_0 = (Object) adaptor.nil();

				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:339:4: (
				// NUMERIC_SYM ( LPAREN length ( COMMA number_literal )? RPAREN
				// )? ( UNSIGNED_SYM )? ( ZEROFILL )? ( null_or_notnull )? (
				// DEFAULT number_literal )? )
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:339:7:
				// NUMERIC_SYM ( LPAREN length ( COMMA number_literal )? RPAREN
				// )? ( UNSIGNED_SYM )? ( ZEROFILL )? ( null_or_notnull )? (
				// DEFAULT number_literal )?
				{
					NUMERIC_SYM453 = (Token) match(input, NUMERIC_SYM,
							FOLLOW_NUMERIC_SYM_in_column_data_type_header2952);
					if (state.failed)
						return retval;
					if (state.backtracking == 0) {
						NUMERIC_SYM453_tree = (Object) adaptor
								.create(NUMERIC_SYM453);
						adaptor.addChild(root_0, NUMERIC_SYM453_tree);
					}
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:339:18: (
					// LPAREN length ( COMMA number_literal )? RPAREN )?
					int alt192 = 2;
					int LA192_0 = input.LA(1);

					if ((LA192_0 == LPAREN)) {
						alt192 = 1;
					}
					switch (alt192) {
					case 1:
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:339:19:
					// LPAREN length ( COMMA number_literal )? RPAREN
					{
						LPAREN454 = (Token) match(input, LPAREN,
								FOLLOW_LPAREN_in_column_data_type_header2954);
						if (state.failed)
							return retval;
						if (state.backtracking == 0) {
							LPAREN454_tree = (Object) adaptor.create(LPAREN454);
							adaptor.addChild(root_0, LPAREN454_tree);
						}
						pushFollow(FOLLOW_length_in_column_data_type_header2956);
						length455 = length();

						state._fsp--;
						if (state.failed)
							return retval;
						if (state.backtracking == 0)
							adaptor.addChild(root_0, length455.getTree());
						// C:\\Users\\grand\\Desktop\\another\\MySQL.g:339:32: (
						// COMMA number_literal )?
						int alt191 = 2;
						int LA191_0 = input.LA(1);

						if ((LA191_0 == COMMA)) {
							alt191 = 1;
						}
						switch (alt191) {
						case 1:
						// C:\\Users\\grand\\Desktop\\another\\MySQL.g:339:34:
						// COMMA number_literal
						{
							COMMA456 = (Token) match(input, COMMA,
									FOLLOW_COMMA_in_column_data_type_header2959);
							if (state.failed)
								return retval;
							if (state.backtracking == 0) {
								COMMA456_tree = (Object) adaptor
										.create(COMMA456);
								adaptor.addChild(root_0, COMMA456_tree);
							}
							pushFollow(FOLLOW_number_literal_in_column_data_type_header2961);
							number_literal457 = number_literal();

							state._fsp--;
							if (state.failed)
								return retval;
							if (state.backtracking == 0)
								adaptor.addChild(root_0,
										number_literal457.getTree());

						}
							break;

						}

						RPAREN458 = (Token) match(input, RPAREN,
								FOLLOW_RPAREN_in_column_data_type_header2965);
						if (state.failed)
							return retval;
						if (state.backtracking == 0) {
							RPAREN458_tree = (Object) adaptor.create(RPAREN458);
							adaptor.addChild(root_0, RPAREN458_tree);
						}

					}
						break;

					}

					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:339:66: (
					// UNSIGNED_SYM )?
					int alt193 = 2;
					int LA193_0 = input.LA(1);

					if ((LA193_0 == UNSIGNED_SYM)) {
						alt193 = 1;
					}
					switch (alt193) {
					case 1:
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:339:67:
					// UNSIGNED_SYM
					{
						UNSIGNED_SYM459 = (Token) match(input, UNSIGNED_SYM,
								FOLLOW_UNSIGNED_SYM_in_column_data_type_header2970);
						if (state.failed)
							return retval;
						if (state.backtracking == 0) {
							UNSIGNED_SYM459_tree = (Object) adaptor
									.create(UNSIGNED_SYM459);
							adaptor.addChild(root_0, UNSIGNED_SYM459_tree);
						}

					}
						break;

					}

					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:339:82: (
					// ZEROFILL )?
					int alt194 = 2;
					int LA194_0 = input.LA(1);

					if ((LA194_0 == ZEROFILL)) {
						alt194 = 1;
					}
					switch (alt194) {
					case 1:
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:339:83:
					// ZEROFILL
					{
						ZEROFILL460 = (Token) match(input, ZEROFILL,
								FOLLOW_ZEROFILL_in_column_data_type_header2975);
						if (state.failed)
							return retval;
						if (state.backtracking == 0) {
							ZEROFILL460_tree = (Object) adaptor
									.create(ZEROFILL460);
							adaptor.addChild(root_0, ZEROFILL460_tree);
						}

					}
						break;

					}

					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:339:94: (
					// null_or_notnull )?
					int alt195 = 2;
					int LA195_0 = input.LA(1);

					if ((LA195_0 == NOT_SYM || LA195_0 == NULL_SYM)) {
						alt195 = 1;
					}
					switch (alt195) {
					case 1:
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:339:95:
					// null_or_notnull
					{
						pushFollow(FOLLOW_null_or_notnull_in_column_data_type_header2980);
						null_or_notnull461 = null_or_notnull();

						state._fsp--;
						if (state.failed)
							return retval;
						if (state.backtracking == 0)
							adaptor.addChild(root_0,
									null_or_notnull461.getTree());

					}
						break;

					}

					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:339:113: (
					// DEFAULT number_literal )?
					int alt196 = 2;
					int LA196_0 = input.LA(1);

					if ((LA196_0 == DEFAULT)) {
						alt196 = 1;
					}
					switch (alt196) {
					case 1:
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:339:114:
					// DEFAULT number_literal
					{
						DEFAULT462 = (Token) match(input, DEFAULT,
								FOLLOW_DEFAULT_in_column_data_type_header2985);
						if (state.failed)
							return retval;
						if (state.backtracking == 0) {
							DEFAULT462_tree = (Object) adaptor
									.create(DEFAULT462);
							adaptor.addChild(root_0, DEFAULT462_tree);
						}
						pushFollow(FOLLOW_number_literal_in_column_data_type_header2987);
						number_literal463 = number_literal();

						state._fsp--;
						if (state.failed)
							return retval;
						if (state.backtracking == 0)
							adaptor.addChild(root_0,
									number_literal463.getTree());

					}
						break;

					}

				}

			}
				break;
			case 13:
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:340:4: ( DATE_SYM (
			// null_or_notnull )? ( DEFAULT TEXT_STRING )? )
			{
				root_0 = (Object) adaptor.nil();

				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:340:4: ( DATE_SYM
				// ( null_or_notnull )? ( DEFAULT TEXT_STRING )? )
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:340:7: DATE_SYM (
				// null_or_notnull )? ( DEFAULT TEXT_STRING )?
				{
					DATE_SYM464 = (Token) match(input, DATE_SYM,
							FOLLOW_DATE_SYM_in_column_data_type_header3000);
					if (state.failed)
						return retval;
					if (state.backtracking == 0) {
						DATE_SYM464_tree = (Object) adaptor.create(DATE_SYM464);
						adaptor.addChild(root_0, DATE_SYM464_tree);
					}
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:340:16: (
					// null_or_notnull )?
					int alt197 = 2;
					int LA197_0 = input.LA(1);

					if ((LA197_0 == NOT_SYM || LA197_0 == NULL_SYM)) {
						alt197 = 1;
					}
					switch (alt197) {
					case 1:
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:340:17:
					// null_or_notnull
					{
						pushFollow(FOLLOW_null_or_notnull_in_column_data_type_header3003);
						null_or_notnull465 = null_or_notnull();

						state._fsp--;
						if (state.failed)
							return retval;
						if (state.backtracking == 0)
							adaptor.addChild(root_0,
									null_or_notnull465.getTree());

					}
						break;

					}

					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:340:35: (
					// DEFAULT TEXT_STRING )?
					int alt198 = 2;
					int LA198_0 = input.LA(1);

					if ((LA198_0 == DEFAULT)) {
						alt198 = 1;
					}
					switch (alt198) {
					case 1:
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:340:36:
					// DEFAULT TEXT_STRING
					{
						DEFAULT466 = (Token) match(input, DEFAULT,
								FOLLOW_DEFAULT_in_column_data_type_header3008);
						if (state.failed)
							return retval;
						if (state.backtracking == 0) {
							DEFAULT466_tree = (Object) adaptor
									.create(DEFAULT466);
							adaptor.addChild(root_0, DEFAULT466_tree);
						}
						TEXT_STRING467 = (Token) match(input, TEXT_STRING,
								FOLLOW_TEXT_STRING_in_column_data_type_header3010);
						if (state.failed)
							return retval;
						if (state.backtracking == 0) {
							TEXT_STRING467_tree = (Object) adaptor
									.create(TEXT_STRING467);
							adaptor.addChild(root_0, TEXT_STRING467_tree);
						}

					}
						break;

					}

				}

			}
				break;
			case 14:
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:341:4: ( TIME_SYM (
			// null_or_notnull )? ( DEFAULT TEXT_STRING )? )
			{
				root_0 = (Object) adaptor.nil();

				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:341:4: ( TIME_SYM
				// ( null_or_notnull )? ( DEFAULT TEXT_STRING )? )
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:341:7: TIME_SYM (
				// null_or_notnull )? ( DEFAULT TEXT_STRING )?
				{
					TIME_SYM468 = (Token) match(input, TIME_SYM,
							FOLLOW_TIME_SYM_in_column_data_type_header3023);
					if (state.failed)
						return retval;
					if (state.backtracking == 0) {
						TIME_SYM468_tree = (Object) adaptor.create(TIME_SYM468);
						adaptor.addChild(root_0, TIME_SYM468_tree);
					}
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:341:16: (
					// null_or_notnull )?
					int alt199 = 2;
					int LA199_0 = input.LA(1);

					if ((LA199_0 == NOT_SYM || LA199_0 == NULL_SYM)) {
						alt199 = 1;
					}
					switch (alt199) {
					case 1:
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:341:17:
					// null_or_notnull
					{
						pushFollow(FOLLOW_null_or_notnull_in_column_data_type_header3026);
						null_or_notnull469 = null_or_notnull();

						state._fsp--;
						if (state.failed)
							return retval;
						if (state.backtracking == 0)
							adaptor.addChild(root_0,
									null_or_notnull469.getTree());

					}
						break;

					}

					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:341:35: (
					// DEFAULT TEXT_STRING )?
					int alt200 = 2;
					int LA200_0 = input.LA(1);

					if ((LA200_0 == DEFAULT)) {
						alt200 = 1;
					}
					switch (alt200) {
					case 1:
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:341:36:
					// DEFAULT TEXT_STRING
					{
						DEFAULT470 = (Token) match(input, DEFAULT,
								FOLLOW_DEFAULT_in_column_data_type_header3031);
						if (state.failed)
							return retval;
						if (state.backtracking == 0) {
							DEFAULT470_tree = (Object) adaptor
									.create(DEFAULT470);
							adaptor.addChild(root_0, DEFAULT470_tree);
						}
						TEXT_STRING471 = (Token) match(input, TEXT_STRING,
								FOLLOW_TEXT_STRING_in_column_data_type_header3033);
						if (state.failed)
							return retval;
						if (state.backtracking == 0) {
							TEXT_STRING471_tree = (Object) adaptor
									.create(TEXT_STRING471);
							adaptor.addChild(root_0, TEXT_STRING471_tree);
						}

					}
						break;

					}

				}

			}
				break;
			case 15:
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:342:4: ( TIMESTAMP (
			// null_or_notnull )? ( DEFAULT ( CURRENT_TIMESTAMP | TEXT_STRING )
			// )? )
			{
				root_0 = (Object) adaptor.nil();

				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:342:4: (
				// TIMESTAMP ( null_or_notnull )? ( DEFAULT ( CURRENT_TIMESTAMP
				// | TEXT_STRING ) )? )
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:342:7: TIMESTAMP
				// ( null_or_notnull )? ( DEFAULT ( CURRENT_TIMESTAMP |
				// TEXT_STRING ) )?
				{
					TIMESTAMP472 = (Token) match(input, TIMESTAMP,
							FOLLOW_TIMESTAMP_in_column_data_type_header3046);
					if (state.failed)
						return retval;
					if (state.backtracking == 0) {
						TIMESTAMP472_tree = (Object) adaptor
								.create(TIMESTAMP472);
						adaptor.addChild(root_0, TIMESTAMP472_tree);
					}
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:342:17: (
					// null_or_notnull )?
					int alt201 = 2;
					int LA201_0 = input.LA(1);

					if ((LA201_0 == NOT_SYM || LA201_0 == NULL_SYM)) {
						alt201 = 1;
					}
					switch (alt201) {
					case 1:
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:342:18:
					// null_or_notnull
					{
						pushFollow(FOLLOW_null_or_notnull_in_column_data_type_header3049);
						null_or_notnull473 = null_or_notnull();

						state._fsp--;
						if (state.failed)
							return retval;
						if (state.backtracking == 0)
							adaptor.addChild(root_0,
									null_or_notnull473.getTree());

					}
						break;

					}

					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:342:36: (
					// DEFAULT ( CURRENT_TIMESTAMP | TEXT_STRING ) )?
					int alt202 = 2;
					int LA202_0 = input.LA(1);

					if ((LA202_0 == DEFAULT)) {
						alt202 = 1;
					}
					switch (alt202) {
					case 1:
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:342:37:
					// DEFAULT ( CURRENT_TIMESTAMP | TEXT_STRING )
					{
						DEFAULT474 = (Token) match(input, DEFAULT,
								FOLLOW_DEFAULT_in_column_data_type_header3054);
						if (state.failed)
							return retval;
						if (state.backtracking == 0) {
							DEFAULT474_tree = (Object) adaptor
									.create(DEFAULT474);
							adaptor.addChild(root_0, DEFAULT474_tree);
						}
						set475 = (Token) input.LT(1);
						if (input.LA(1) == TEXT_STRING
								|| input.LA(1) == CURRENT_TIMESTAMP) {
							input.consume();
							if (state.backtracking == 0)
								adaptor.addChild(root_0,
										(Object) adaptor.create(set475));
							state.errorRecovery = false;
							state.failed = false;
						} else {
							if (state.backtracking > 0) {
								state.failed = true;
								return retval;
							}
							MismatchedSetException mse = new MismatchedSetException(
									null, input);
							throw mse;
						}

					}
						break;

					}

				}

			}
				break;
			case 16:
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:343:4: ( DATETIME (
			// null_or_notnull )? ( DEFAULT ( CURRENT_TIMESTAMP | TEXT_STRING )
			// )? )
			{
				root_0 = (Object) adaptor.nil();

				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:343:4: ( DATETIME
				// ( null_or_notnull )? ( DEFAULT ( CURRENT_TIMESTAMP |
				// TEXT_STRING ) )? )
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:343:7: DATETIME (
				// null_or_notnull )? ( DEFAULT ( CURRENT_TIMESTAMP |
				// TEXT_STRING ) )?
				{
					DATETIME476 = (Token) match(input, DATETIME,
							FOLLOW_DATETIME_in_column_data_type_header3073);
					if (state.failed)
						return retval;
					if (state.backtracking == 0) {
						DATETIME476_tree = (Object) adaptor.create(DATETIME476);
						adaptor.addChild(root_0, DATETIME476_tree);
					}
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:343:16: (
					// null_or_notnull )?
					int alt203 = 2;
					int LA203_0 = input.LA(1);

					if ((LA203_0 == NOT_SYM || LA203_0 == NULL_SYM)) {
						alt203 = 1;
					}
					switch (alt203) {
					case 1:
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:343:17:
					// null_or_notnull
					{
						pushFollow(FOLLOW_null_or_notnull_in_column_data_type_header3076);
						null_or_notnull477 = null_or_notnull();

						state._fsp--;
						if (state.failed)
							return retval;
						if (state.backtracking == 0)
							adaptor.addChild(root_0,
									null_or_notnull477.getTree());

					}
						break;

					}

					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:343:35: (
					// DEFAULT ( CURRENT_TIMESTAMP | TEXT_STRING ) )?
					int alt204 = 2;
					int LA204_0 = input.LA(1);

					if ((LA204_0 == DEFAULT)) {
						alt204 = 1;
					}
					switch (alt204) {
					case 1:
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:343:36:
					// DEFAULT ( CURRENT_TIMESTAMP | TEXT_STRING )
					{
						DEFAULT478 = (Token) match(input, DEFAULT,
								FOLLOW_DEFAULT_in_column_data_type_header3081);
						if (state.failed)
							return retval;
						if (state.backtracking == 0) {
							DEFAULT478_tree = (Object) adaptor
									.create(DEFAULT478);
							adaptor.addChild(root_0, DEFAULT478_tree);
						}
						set479 = (Token) input.LT(1);
						if (input.LA(1) == TEXT_STRING
								|| input.LA(1) == CURRENT_TIMESTAMP) {
							input.consume();
							if (state.backtracking == 0)
								adaptor.addChild(root_0,
										(Object) adaptor.create(set479));
							state.errorRecovery = false;
							state.failed = false;
						} else {
							if (state.backtracking > 0) {
								state.failed = true;
								return retval;
							}
							MismatchedSetException mse = new MismatchedSetException(
									null, input);
							throw mse;
						}

					}
						break;

					}

				}

			}
				break;
			case 17:
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:344:4: ( YEAR (
			// null_or_notnull )? ( DEFAULT INTEGER_NUM )? )
			{
				root_0 = (Object) adaptor.nil();

				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:344:4: ( YEAR (
				// null_or_notnull )? ( DEFAULT INTEGER_NUM )? )
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:344:7: YEAR (
				// null_or_notnull )? ( DEFAULT INTEGER_NUM )?
				{
					YEAR480 = (Token) match(input, YEAR,
							FOLLOW_YEAR_in_column_data_type_header3100);
					if (state.failed)
						return retval;
					if (state.backtracking == 0) {
						YEAR480_tree = (Object) adaptor.create(YEAR480);
						adaptor.addChild(root_0, YEAR480_tree);
					}
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:344:12: (
					// null_or_notnull )?
					int alt205 = 2;
					int LA205_0 = input.LA(1);

					if ((LA205_0 == NOT_SYM || LA205_0 == NULL_SYM)) {
						alt205 = 1;
					}
					switch (alt205) {
					case 1:
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:344:13:
					// null_or_notnull
					{
						pushFollow(FOLLOW_null_or_notnull_in_column_data_type_header3103);
						null_or_notnull481 = null_or_notnull();

						state._fsp--;
						if (state.failed)
							return retval;
						if (state.backtracking == 0)
							adaptor.addChild(root_0,
									null_or_notnull481.getTree());

					}
						break;

					}

					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:344:31: (
					// DEFAULT INTEGER_NUM )?
					int alt206 = 2;
					int LA206_0 = input.LA(1);

					if ((LA206_0 == DEFAULT)) {
						alt206 = 1;
					}
					switch (alt206) {
					case 1:
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:344:32:
					// DEFAULT INTEGER_NUM
					{
						DEFAULT482 = (Token) match(input, DEFAULT,
								FOLLOW_DEFAULT_in_column_data_type_header3108);
						if (state.failed)
							return retval;
						if (state.backtracking == 0) {
							DEFAULT482_tree = (Object) adaptor
									.create(DEFAULT482);
							adaptor.addChild(root_0, DEFAULT482_tree);
						}
						INTEGER_NUM483 = (Token) match(input, INTEGER_NUM,
								FOLLOW_INTEGER_NUM_in_column_data_type_header3110);
						if (state.failed)
							return retval;
						if (state.backtracking == 0) {
							INTEGER_NUM483_tree = (Object) adaptor
									.create(INTEGER_NUM483);
							adaptor.addChild(root_0, INTEGER_NUM483_tree);
						}

					}
						break;

					}

				}

			}
				break;
			case 18:
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:345:4: ( CHAR (
			// LPAREN length RPAREN )? ( CHARACTER_SYM SET_SYM charset_name )? (
			// COLLATE_SYM collation_name )? ( null_or_notnull )? ( DEFAULT
			// TEXT_STRING )? )
			{
				root_0 = (Object) adaptor.nil();

				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:345:4: ( CHAR (
				// LPAREN length RPAREN )? ( CHARACTER_SYM SET_SYM charset_name
				// )? ( COLLATE_SYM collation_name )? ( null_or_notnull )? (
				// DEFAULT TEXT_STRING )? )
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:345:7: CHAR (
				// LPAREN length RPAREN )? ( CHARACTER_SYM SET_SYM charset_name
				// )? ( COLLATE_SYM collation_name )? ( null_or_notnull )? (
				// DEFAULT TEXT_STRING )?
				{
					CHAR484 = (Token) match(input, CHAR,
							FOLLOW_CHAR_in_column_data_type_header3123);
					if (state.failed)
						return retval;
					if (state.backtracking == 0) {
						CHAR484_tree = (Object) adaptor.create(CHAR484);
						adaptor.addChild(root_0, CHAR484_tree);
					}
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:345:14: (
					// LPAREN length RPAREN )?
					int alt207 = 2;
					int LA207_0 = input.LA(1);

					if ((LA207_0 == LPAREN)) {
						alt207 = 1;
					}
					switch (alt207) {
					case 1:
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:345:15:
					// LPAREN length RPAREN
					{
						LPAREN485 = (Token) match(input, LPAREN,
								FOLLOW_LPAREN_in_column_data_type_header3128);
						if (state.failed)
							return retval;
						if (state.backtracking == 0) {
							LPAREN485_tree = (Object) adaptor.create(LPAREN485);
							adaptor.addChild(root_0, LPAREN485_tree);
						}
						pushFollow(FOLLOW_length_in_column_data_type_header3130);
						length486 = length();

						state._fsp--;
						if (state.failed)
							return retval;
						if (state.backtracking == 0)
							adaptor.addChild(root_0, length486.getTree());
						RPAREN487 = (Token) match(input, RPAREN,
								FOLLOW_RPAREN_in_column_data_type_header3132);
						if (state.failed)
							return retval;
						if (state.backtracking == 0) {
							RPAREN487_tree = (Object) adaptor.create(RPAREN487);
							adaptor.addChild(root_0, RPAREN487_tree);
						}

					}
						break;

					}

					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:345:38: (
					// CHARACTER_SYM SET_SYM charset_name )?
					int alt208 = 2;
					int LA208_0 = input.LA(1);

					if ((LA208_0 == CHARACTER_SYM)) {
						alt208 = 1;
					}
					switch (alt208) {
					case 1:
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:345:39:
					// CHARACTER_SYM SET_SYM charset_name
					{
						CHARACTER_SYM488 = (Token) match(input, CHARACTER_SYM,
								FOLLOW_CHARACTER_SYM_in_column_data_type_header3137);
						if (state.failed)
							return retval;
						if (state.backtracking == 0) {
							CHARACTER_SYM488_tree = (Object) adaptor
									.create(CHARACTER_SYM488);
							adaptor.addChild(root_0, CHARACTER_SYM488_tree);
						}
						SET_SYM489 = (Token) match(input, SET_SYM,
								FOLLOW_SET_SYM_in_column_data_type_header3139);
						if (state.failed)
							return retval;
						if (state.backtracking == 0) {
							SET_SYM489_tree = (Object) adaptor
									.create(SET_SYM489);
							adaptor.addChild(root_0, SET_SYM489_tree);
						}
						pushFollow(FOLLOW_charset_name_in_column_data_type_header3141);
						charset_name490 = charset_name();

						state._fsp--;
						if (state.failed)
							return retval;
						if (state.backtracking == 0)
							adaptor.addChild(root_0, charset_name490.getTree());

					}
						break;

					}

					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:345:76: (
					// COLLATE_SYM collation_name )?
					int alt209 = 2;
					int LA209_0 = input.LA(1);

					if ((LA209_0 == COLLATE_SYM)) {
						alt209 = 1;
					}
					switch (alt209) {
					case 1:
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:345:77:
					// COLLATE_SYM collation_name
					{
						COLLATE_SYM491 = (Token) match(input, COLLATE_SYM,
								FOLLOW_COLLATE_SYM_in_column_data_type_header3146);
						if (state.failed)
							return retval;
						if (state.backtracking == 0) {
							COLLATE_SYM491_tree = (Object) adaptor
									.create(COLLATE_SYM491);
							adaptor.addChild(root_0, COLLATE_SYM491_tree);
						}
						pushFollow(FOLLOW_collation_name_in_column_data_type_header3148);
						collation_name492 = collation_name();

						state._fsp--;
						if (state.failed)
							return retval;
						if (state.backtracking == 0)
							adaptor.addChild(root_0,
									collation_name492.getTree());

					}
						break;

					}

					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:345:106: (
					// null_or_notnull )?
					int alt210 = 2;
					int LA210_0 = input.LA(1);

					if ((LA210_0 == NOT_SYM || LA210_0 == NULL_SYM)) {
						alt210 = 1;
					}
					switch (alt210) {
					case 1:
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:345:107:
					// null_or_notnull
					{
						pushFollow(FOLLOW_null_or_notnull_in_column_data_type_header3153);
						null_or_notnull493 = null_or_notnull();

						state._fsp--;
						if (state.failed)
							return retval;
						if (state.backtracking == 0)
							adaptor.addChild(root_0,
									null_or_notnull493.getTree());

					}
						break;

					}

					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:345:125: (
					// DEFAULT TEXT_STRING )?
					int alt211 = 2;
					int LA211_0 = input.LA(1);

					if ((LA211_0 == DEFAULT)) {
						alt211 = 1;
					}
					switch (alt211) {
					case 1:
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:345:126:
					// DEFAULT TEXT_STRING
					{
						DEFAULT494 = (Token) match(input, DEFAULT,
								FOLLOW_DEFAULT_in_column_data_type_header3158);
						if (state.failed)
							return retval;
						if (state.backtracking == 0) {
							DEFAULT494_tree = (Object) adaptor
									.create(DEFAULT494);
							adaptor.addChild(root_0, DEFAULT494_tree);
						}
						TEXT_STRING495 = (Token) match(input, TEXT_STRING,
								FOLLOW_TEXT_STRING_in_column_data_type_header3160);
						if (state.failed)
							return retval;
						if (state.backtracking == 0) {
							TEXT_STRING495_tree = (Object) adaptor
									.create(TEXT_STRING495);
							adaptor.addChild(root_0, TEXT_STRING495_tree);
						}

					}
						break;

					}

				}

			}
				break;
			case 19:
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:346:4: ( VARCHAR
			// LPAREN length RPAREN ( CHARACTER_SYM SET_SYM charset_name )? (
			// COLLATE_SYM collation_name )? ( null_or_notnull )? ( DEFAULT
			// TEXT_STRING )? )
			{
				root_0 = (Object) adaptor.nil();

				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:346:4: ( VARCHAR
				// LPAREN length RPAREN ( CHARACTER_SYM SET_SYM charset_name )?
				// ( COLLATE_SYM collation_name )? ( null_or_notnull )? (
				// DEFAULT TEXT_STRING )? )
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:346:7: VARCHAR
				// LPAREN length RPAREN ( CHARACTER_SYM SET_SYM charset_name )?
				// ( COLLATE_SYM collation_name )? ( null_or_notnull )? (
				// DEFAULT TEXT_STRING )?
				{
					VARCHAR496 = (Token) match(input, VARCHAR,
							FOLLOW_VARCHAR_in_column_data_type_header3173);
					if (state.failed)
						return retval;
					if (state.backtracking == 0) {
						VARCHAR496_tree = (Object) adaptor.create(VARCHAR496);
						adaptor.addChild(root_0, VARCHAR496_tree);
					}
					LPAREN497 = (Token) match(input, LPAREN,
							FOLLOW_LPAREN_in_column_data_type_header3175);
					if (state.failed)
						return retval;
					if (state.backtracking == 0) {
						LPAREN497_tree = (Object) adaptor.create(LPAREN497);
						adaptor.addChild(root_0, LPAREN497_tree);
					}
					pushFollow(FOLLOW_length_in_column_data_type_header3177);
					length498 = length();

					state._fsp--;
					if (state.failed)
						return retval;
					if (state.backtracking == 0)
						adaptor.addChild(root_0, length498.getTree());
					RPAREN499 = (Token) match(input, RPAREN,
							FOLLOW_RPAREN_in_column_data_type_header3179);
					if (state.failed)
						return retval;
					if (state.backtracking == 0) {
						RPAREN499_tree = (Object) adaptor.create(RPAREN499);
						adaptor.addChild(root_0, RPAREN499_tree);
					}
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:346:38: (
					// CHARACTER_SYM SET_SYM charset_name )?
					int alt212 = 2;
					int LA212_0 = input.LA(1);

					if ((LA212_0 == CHARACTER_SYM)) {
						alt212 = 1;
					}
					switch (alt212) {
					case 1:
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:346:39:
					// CHARACTER_SYM SET_SYM charset_name
					{
						CHARACTER_SYM500 = (Token) match(input, CHARACTER_SYM,
								FOLLOW_CHARACTER_SYM_in_column_data_type_header3184);
						if (state.failed)
							return retval;
						if (state.backtracking == 0) {
							CHARACTER_SYM500_tree = (Object) adaptor
									.create(CHARACTER_SYM500);
							adaptor.addChild(root_0, CHARACTER_SYM500_tree);
						}
						SET_SYM501 = (Token) match(input, SET_SYM,
								FOLLOW_SET_SYM_in_column_data_type_header3186);
						if (state.failed)
							return retval;
						if (state.backtracking == 0) {
							SET_SYM501_tree = (Object) adaptor
									.create(SET_SYM501);
							adaptor.addChild(root_0, SET_SYM501_tree);
						}
						pushFollow(FOLLOW_charset_name_in_column_data_type_header3188);
						charset_name502 = charset_name();

						state._fsp--;
						if (state.failed)
							return retval;
						if (state.backtracking == 0)
							adaptor.addChild(root_0, charset_name502.getTree());

					}
						break;

					}

					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:346:76: (
					// COLLATE_SYM collation_name )?
					int alt213 = 2;
					int LA213_0 = input.LA(1);

					if ((LA213_0 == COLLATE_SYM)) {
						alt213 = 1;
					}
					switch (alt213) {
					case 1:
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:346:77:
					// COLLATE_SYM collation_name
					{
						COLLATE_SYM503 = (Token) match(input, COLLATE_SYM,
								FOLLOW_COLLATE_SYM_in_column_data_type_header3193);
						if (state.failed)
							return retval;
						if (state.backtracking == 0) {
							COLLATE_SYM503_tree = (Object) adaptor
									.create(COLLATE_SYM503);
							adaptor.addChild(root_0, COLLATE_SYM503_tree);
						}
						pushFollow(FOLLOW_collation_name_in_column_data_type_header3195);
						collation_name504 = collation_name();

						state._fsp--;
						if (state.failed)
							return retval;
						if (state.backtracking == 0)
							adaptor.addChild(root_0,
									collation_name504.getTree());

					}
						break;

					}

					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:346:106: (
					// null_or_notnull )?
					int alt214 = 2;
					int LA214_0 = input.LA(1);

					if ((LA214_0 == NOT_SYM || LA214_0 == NULL_SYM)) {
						alt214 = 1;
					}
					switch (alt214) {
					case 1:
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:346:107:
					// null_or_notnull
					{
						pushFollow(FOLLOW_null_or_notnull_in_column_data_type_header3200);
						null_or_notnull505 = null_or_notnull();

						state._fsp--;
						if (state.failed)
							return retval;
						if (state.backtracking == 0)
							adaptor.addChild(root_0,
									null_or_notnull505.getTree());

					}
						break;

					}

					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:346:125: (
					// DEFAULT TEXT_STRING )?
					int alt215 = 2;
					int LA215_0 = input.LA(1);

					if ((LA215_0 == DEFAULT)) {
						alt215 = 1;
					}
					switch (alt215) {
					case 1:
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:346:126:
					// DEFAULT TEXT_STRING
					{
						DEFAULT506 = (Token) match(input, DEFAULT,
								FOLLOW_DEFAULT_in_column_data_type_header3205);
						if (state.failed)
							return retval;
						if (state.backtracking == 0) {
							DEFAULT506_tree = (Object) adaptor
									.create(DEFAULT506);
							adaptor.addChild(root_0, DEFAULT506_tree);
						}
						TEXT_STRING507 = (Token) match(input, TEXT_STRING,
								FOLLOW_TEXT_STRING_in_column_data_type_header3207);
						if (state.failed)
							return retval;
						if (state.backtracking == 0) {
							TEXT_STRING507_tree = (Object) adaptor
									.create(TEXT_STRING507);
							adaptor.addChild(root_0, TEXT_STRING507_tree);
						}

					}
						break;

					}

				}

			}
				break;
			case 20:
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:347:4: ( BINARY (
			// LPAREN length RPAREN )? ( null_or_notnull )? ( DEFAULT
			// TEXT_STRING )? )
			{
				root_0 = (Object) adaptor.nil();

				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:347:4: ( BINARY (
				// LPAREN length RPAREN )? ( null_or_notnull )? ( DEFAULT
				// TEXT_STRING )? )
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:347:7: BINARY (
				// LPAREN length RPAREN )? ( null_or_notnull )? ( DEFAULT
				// TEXT_STRING )?
				{
					BINARY508 = (Token) match(input, BINARY,
							FOLLOW_BINARY_in_column_data_type_header3220);
					if (state.failed)
						return retval;
					if (state.backtracking == 0) {
						BINARY508_tree = (Object) adaptor.create(BINARY508);
						adaptor.addChild(root_0, BINARY508_tree);
					}
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:347:16: (
					// LPAREN length RPAREN )?
					int alt216 = 2;
					int LA216_0 = input.LA(1);

					if ((LA216_0 == LPAREN)) {
						alt216 = 1;
					}
					switch (alt216) {
					case 1:
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:347:17:
					// LPAREN length RPAREN
					{
						LPAREN509 = (Token) match(input, LPAREN,
								FOLLOW_LPAREN_in_column_data_type_header3225);
						if (state.failed)
							return retval;
						if (state.backtracking == 0) {
							LPAREN509_tree = (Object) adaptor.create(LPAREN509);
							adaptor.addChild(root_0, LPAREN509_tree);
						}
						pushFollow(FOLLOW_length_in_column_data_type_header3227);
						length510 = length();

						state._fsp--;
						if (state.failed)
							return retval;
						if (state.backtracking == 0)
							adaptor.addChild(root_0, length510.getTree());
						RPAREN511 = (Token) match(input, RPAREN,
								FOLLOW_RPAREN_in_column_data_type_header3229);
						if (state.failed)
							return retval;
						if (state.backtracking == 0) {
							RPAREN511_tree = (Object) adaptor.create(RPAREN511);
							adaptor.addChild(root_0, RPAREN511_tree);
						}

					}
						break;

					}

					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:347:40: (
					// null_or_notnull )?
					int alt217 = 2;
					int LA217_0 = input.LA(1);

					if ((LA217_0 == NOT_SYM || LA217_0 == NULL_SYM)) {
						alt217 = 1;
					}
					switch (alt217) {
					case 1:
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:347:41:
					// null_or_notnull
					{
						pushFollow(FOLLOW_null_or_notnull_in_column_data_type_header3234);
						null_or_notnull512 = null_or_notnull();

						state._fsp--;
						if (state.failed)
							return retval;
						if (state.backtracking == 0)
							adaptor.addChild(root_0,
									null_or_notnull512.getTree());

					}
						break;

					}

					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:347:59: (
					// DEFAULT TEXT_STRING )?
					int alt218 = 2;
					int LA218_0 = input.LA(1);

					if ((LA218_0 == DEFAULT)) {
						alt218 = 1;
					}
					switch (alt218) {
					case 1:
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:347:60:
					// DEFAULT TEXT_STRING
					{
						DEFAULT513 = (Token) match(input, DEFAULT,
								FOLLOW_DEFAULT_in_column_data_type_header3239);
						if (state.failed)
							return retval;
						if (state.backtracking == 0) {
							DEFAULT513_tree = (Object) adaptor
									.create(DEFAULT513);
							adaptor.addChild(root_0, DEFAULT513_tree);
						}
						TEXT_STRING514 = (Token) match(input, TEXT_STRING,
								FOLLOW_TEXT_STRING_in_column_data_type_header3241);
						if (state.failed)
							return retval;
						if (state.backtracking == 0) {
							TEXT_STRING514_tree = (Object) adaptor
									.create(TEXT_STRING514);
							adaptor.addChild(root_0, TEXT_STRING514_tree);
						}

					}
						break;

					}

				}

			}
				break;
			case 21:
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:348:4: ( VARBINARY
			// LPAREN length RPAREN ( null_or_notnull )? ( DEFAULT TEXT_STRING
			// )? )
			{
				root_0 = (Object) adaptor.nil();

				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:348:4: (
				// VARBINARY LPAREN length RPAREN ( null_or_notnull )? ( DEFAULT
				// TEXT_STRING )? )
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:348:7: VARBINARY
				// LPAREN length RPAREN ( null_or_notnull )? ( DEFAULT
				// TEXT_STRING )?
				{
					VARBINARY515 = (Token) match(input, VARBINARY,
							FOLLOW_VARBINARY_in_column_data_type_header3254);
					if (state.failed)
						return retval;
					if (state.backtracking == 0) {
						VARBINARY515_tree = (Object) adaptor
								.create(VARBINARY515);
						adaptor.addChild(root_0, VARBINARY515_tree);
					}
					LPAREN516 = (Token) match(input, LPAREN,
							FOLLOW_LPAREN_in_column_data_type_header3256);
					if (state.failed)
						return retval;
					if (state.backtracking == 0) {
						LPAREN516_tree = (Object) adaptor.create(LPAREN516);
						adaptor.addChild(root_0, LPAREN516_tree);
					}
					pushFollow(FOLLOW_length_in_column_data_type_header3258);
					length517 = length();

					state._fsp--;
					if (state.failed)
						return retval;
					if (state.backtracking == 0)
						adaptor.addChild(root_0, length517.getTree());
					RPAREN518 = (Token) match(input, RPAREN,
							FOLLOW_RPAREN_in_column_data_type_header3260);
					if (state.failed)
						return retval;
					if (state.backtracking == 0) {
						RPAREN518_tree = (Object) adaptor.create(RPAREN518);
						adaptor.addChild(root_0, RPAREN518_tree);
					}
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:348:38: (
					// null_or_notnull )?
					int alt219 = 2;
					int LA219_0 = input.LA(1);

					if ((LA219_0 == NOT_SYM || LA219_0 == NULL_SYM)) {
						alt219 = 1;
					}
					switch (alt219) {
					case 1:
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:348:39:
					// null_or_notnull
					{
						pushFollow(FOLLOW_null_or_notnull_in_column_data_type_header3263);
						null_or_notnull519 = null_or_notnull();

						state._fsp--;
						if (state.failed)
							return retval;
						if (state.backtracking == 0)
							adaptor.addChild(root_0,
									null_or_notnull519.getTree());

					}
						break;

					}

					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:348:57: (
					// DEFAULT TEXT_STRING )?
					int alt220 = 2;
					int LA220_0 = input.LA(1);

					if ((LA220_0 == DEFAULT)) {
						alt220 = 1;
					}
					switch (alt220) {
					case 1:
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:348:58:
					// DEFAULT TEXT_STRING
					{
						DEFAULT520 = (Token) match(input, DEFAULT,
								FOLLOW_DEFAULT_in_column_data_type_header3268);
						if (state.failed)
							return retval;
						if (state.backtracking == 0) {
							DEFAULT520_tree = (Object) adaptor
									.create(DEFAULT520);
							adaptor.addChild(root_0, DEFAULT520_tree);
						}
						TEXT_STRING521 = (Token) match(input, TEXT_STRING,
								FOLLOW_TEXT_STRING_in_column_data_type_header3270);
						if (state.failed)
							return retval;
						if (state.backtracking == 0) {
							TEXT_STRING521_tree = (Object) adaptor
									.create(TEXT_STRING521);
							adaptor.addChild(root_0, TEXT_STRING521_tree);
						}

					}
						break;

					}

				}

			}
				break;
			case 22:
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:349:4: ( TINYBLOB (
			// null_or_notnull )? )
			{
				root_0 = (Object) adaptor.nil();

				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:349:4: ( TINYBLOB
				// ( null_or_notnull )? )
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:349:7: TINYBLOB (
				// null_or_notnull )?
				{
					TINYBLOB522 = (Token) match(input, TINYBLOB,
							FOLLOW_TINYBLOB_in_column_data_type_header3283);
					if (state.failed)
						return retval;
					if (state.backtracking == 0) {
						TINYBLOB522_tree = (Object) adaptor.create(TINYBLOB522);
						adaptor.addChild(root_0, TINYBLOB522_tree);
					}
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:349:16: (
					// null_or_notnull )?
					int alt221 = 2;
					int LA221_0 = input.LA(1);

					if ((LA221_0 == NOT_SYM || LA221_0 == NULL_SYM)) {
						alt221 = 1;
					}
					switch (alt221) {
					case 1:
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:349:17:
					// null_or_notnull
					{
						pushFollow(FOLLOW_null_or_notnull_in_column_data_type_header3286);
						null_or_notnull523 = null_or_notnull();

						state._fsp--;
						if (state.failed)
							return retval;
						if (state.backtracking == 0)
							adaptor.addChild(root_0,
									null_or_notnull523.getTree());

					}
						break;

					}

				}

			}
				break;
			case 23:
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:350:4: ( BLOB_SYM (
			// null_or_notnull )? )
			{
				root_0 = (Object) adaptor.nil();

				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:350:4: ( BLOB_SYM
				// ( null_or_notnull )? )
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:350:7: BLOB_SYM (
				// null_or_notnull )?
				{
					BLOB_SYM524 = (Token) match(input, BLOB_SYM,
							FOLLOW_BLOB_SYM_in_column_data_type_header3299);
					if (state.failed)
						return retval;
					if (state.backtracking == 0) {
						BLOB_SYM524_tree = (Object) adaptor.create(BLOB_SYM524);
						adaptor.addChild(root_0, BLOB_SYM524_tree);
					}
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:350:16: (
					// null_or_notnull )?
					int alt222 = 2;
					int LA222_0 = input.LA(1);

					if ((LA222_0 == NOT_SYM || LA222_0 == NULL_SYM)) {
						alt222 = 1;
					}
					switch (alt222) {
					case 1:
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:350:17:
					// null_or_notnull
					{
						pushFollow(FOLLOW_null_or_notnull_in_column_data_type_header3302);
						null_or_notnull525 = null_or_notnull();

						state._fsp--;
						if (state.failed)
							return retval;
						if (state.backtracking == 0)
							adaptor.addChild(root_0,
									null_or_notnull525.getTree());

					}
						break;

					}

				}

			}
				break;
			case 24:
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:351:4: ( MEDIUMBLOB (
			// null_or_notnull )? )
			{
				root_0 = (Object) adaptor.nil();

				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:351:4: (
				// MEDIUMBLOB ( null_or_notnull )? )
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:351:7: MEDIUMBLOB
				// ( null_or_notnull )?
				{
					MEDIUMBLOB526 = (Token) match(input, MEDIUMBLOB,
							FOLLOW_MEDIUMBLOB_in_column_data_type_header3315);
					if (state.failed)
						return retval;
					if (state.backtracking == 0) {
						MEDIUMBLOB526_tree = (Object) adaptor
								.create(MEDIUMBLOB526);
						adaptor.addChild(root_0, MEDIUMBLOB526_tree);
					}
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:351:18: (
					// null_or_notnull )?
					int alt223 = 2;
					int LA223_0 = input.LA(1);

					if ((LA223_0 == NOT_SYM || LA223_0 == NULL_SYM)) {
						alt223 = 1;
					}
					switch (alt223) {
					case 1:
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:351:19:
					// null_or_notnull
					{
						pushFollow(FOLLOW_null_or_notnull_in_column_data_type_header3318);
						null_or_notnull527 = null_or_notnull();

						state._fsp--;
						if (state.failed)
							return retval;
						if (state.backtracking == 0)
							adaptor.addChild(root_0,
									null_or_notnull527.getTree());

					}
						break;

					}

				}

			}
				break;
			case 25:
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:352:4: ( LONGBLOB (
			// null_or_notnull )? )
			{
				root_0 = (Object) adaptor.nil();

				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:352:4: ( LONGBLOB
				// ( null_or_notnull )? )
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:352:7: LONGBLOB (
				// null_or_notnull )?
				{
					LONGBLOB528 = (Token) match(input, LONGBLOB,
							FOLLOW_LONGBLOB_in_column_data_type_header3331);
					if (state.failed)
						return retval;
					if (state.backtracking == 0) {
						LONGBLOB528_tree = (Object) adaptor.create(LONGBLOB528);
						adaptor.addChild(root_0, LONGBLOB528_tree);
					}
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:352:16: (
					// null_or_notnull )?
					int alt224 = 2;
					int LA224_0 = input.LA(1);

					if ((LA224_0 == NOT_SYM || LA224_0 == NULL_SYM)) {
						alt224 = 1;
					}
					switch (alt224) {
					case 1:
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:352:17:
					// null_or_notnull
					{
						pushFollow(FOLLOW_null_or_notnull_in_column_data_type_header3334);
						null_or_notnull529 = null_or_notnull();

						state._fsp--;
						if (state.failed)
							return retval;
						if (state.backtracking == 0)
							adaptor.addChild(root_0,
									null_or_notnull529.getTree());

					}
						break;

					}

				}

			}
				break;
			case 26:
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:353:4: ( TINYTEXT (
			// BINARY )? ( CHARACTER_SYM SET_SYM charset_name )? ( COLLATE_SYM
			// collation_name )? ( null_or_notnull )? )
			{
				root_0 = (Object) adaptor.nil();

				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:353:4: ( TINYTEXT
				// ( BINARY )? ( CHARACTER_SYM SET_SYM charset_name )? (
				// COLLATE_SYM collation_name )? ( null_or_notnull )? )
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:353:7: TINYTEXT (
				// BINARY )? ( CHARACTER_SYM SET_SYM charset_name )? (
				// COLLATE_SYM collation_name )? ( null_or_notnull )?
				{
					TINYTEXT530 = (Token) match(input, TINYTEXT,
							FOLLOW_TINYTEXT_in_column_data_type_header3347);
					if (state.failed)
						return retval;
					if (state.backtracking == 0) {
						TINYTEXT530_tree = (Object) adaptor.create(TINYTEXT530);
						adaptor.addChild(root_0, TINYTEXT530_tree);
					}
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:353:18: (
					// BINARY )?
					int alt225 = 2;
					int LA225_0 = input.LA(1);

					if ((LA225_0 == BINARY)) {
						alt225 = 1;
					}
					switch (alt225) {
					case 1:
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:353:19:
					// BINARY
					{
						BINARY531 = (Token) match(input, BINARY,
								FOLLOW_BINARY_in_column_data_type_header3352);
						if (state.failed)
							return retval;
						if (state.backtracking == 0) {
							BINARY531_tree = (Object) adaptor.create(BINARY531);
							adaptor.addChild(root_0, BINARY531_tree);
						}

					}
						break;

					}

					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:353:28: (
					// CHARACTER_SYM SET_SYM charset_name )?
					int alt226 = 2;
					int LA226_0 = input.LA(1);

					if ((LA226_0 == CHARACTER_SYM)) {
						alt226 = 1;
					}
					switch (alt226) {
					case 1:
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:353:29:
					// CHARACTER_SYM SET_SYM charset_name
					{
						CHARACTER_SYM532 = (Token) match(input, CHARACTER_SYM,
								FOLLOW_CHARACTER_SYM_in_column_data_type_header3357);
						if (state.failed)
							return retval;
						if (state.backtracking == 0) {
							CHARACTER_SYM532_tree = (Object) adaptor
									.create(CHARACTER_SYM532);
							adaptor.addChild(root_0, CHARACTER_SYM532_tree);
						}
						SET_SYM533 = (Token) match(input, SET_SYM,
								FOLLOW_SET_SYM_in_column_data_type_header3359);
						if (state.failed)
							return retval;
						if (state.backtracking == 0) {
							SET_SYM533_tree = (Object) adaptor
									.create(SET_SYM533);
							adaptor.addChild(root_0, SET_SYM533_tree);
						}
						pushFollow(FOLLOW_charset_name_in_column_data_type_header3361);
						charset_name534 = charset_name();

						state._fsp--;
						if (state.failed)
							return retval;
						if (state.backtracking == 0)
							adaptor.addChild(root_0, charset_name534.getTree());

					}
						break;

					}

					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:353:66: (
					// COLLATE_SYM collation_name )?
					int alt227 = 2;
					int LA227_0 = input.LA(1);

					if ((LA227_0 == COLLATE_SYM)) {
						alt227 = 1;
					}
					switch (alt227) {
					case 1:
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:353:67:
					// COLLATE_SYM collation_name
					{
						COLLATE_SYM535 = (Token) match(input, COLLATE_SYM,
								FOLLOW_COLLATE_SYM_in_column_data_type_header3366);
						if (state.failed)
							return retval;
						if (state.backtracking == 0) {
							COLLATE_SYM535_tree = (Object) adaptor
									.create(COLLATE_SYM535);
							adaptor.addChild(root_0, COLLATE_SYM535_tree);
						}
						pushFollow(FOLLOW_collation_name_in_column_data_type_header3368);
						collation_name536 = collation_name();

						state._fsp--;
						if (state.failed)
							return retval;
						if (state.backtracking == 0)
							adaptor.addChild(root_0,
									collation_name536.getTree());

					}
						break;

					}

					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:353:96: (
					// null_or_notnull )?
					int alt228 = 2;
					int LA228_0 = input.LA(1);

					if ((LA228_0 == NOT_SYM || LA228_0 == NULL_SYM)) {
						alt228 = 1;
					}
					switch (alt228) {
					case 1:
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:353:97:
					// null_or_notnull
					{
						pushFollow(FOLLOW_null_or_notnull_in_column_data_type_header3373);
						null_or_notnull537 = null_or_notnull();

						state._fsp--;
						if (state.failed)
							return retval;
						if (state.backtracking == 0)
							adaptor.addChild(root_0,
									null_or_notnull537.getTree());

					}
						break;

					}

				}

			}
				break;
			case 27:
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:354:4: ( TEXT_SYM (
			// BINARY )? ( CHARACTER_SYM SET_SYM charset_name )? ( COLLATE_SYM
			// collation_name )? ( null_or_notnull )? )
			{
				root_0 = (Object) adaptor.nil();

				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:354:4: ( TEXT_SYM
				// ( BINARY )? ( CHARACTER_SYM SET_SYM charset_name )? (
				// COLLATE_SYM collation_name )? ( null_or_notnull )? )
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:354:7: TEXT_SYM (
				// BINARY )? ( CHARACTER_SYM SET_SYM charset_name )? (
				// COLLATE_SYM collation_name )? ( null_or_notnull )?
				{
					TEXT_SYM538 = (Token) match(input, TEXT_SYM,
							FOLLOW_TEXT_SYM_in_column_data_type_header3386);
					if (state.failed)
						return retval;
					if (state.backtracking == 0) {
						TEXT_SYM538_tree = (Object) adaptor.create(TEXT_SYM538);
						adaptor.addChild(root_0, TEXT_SYM538_tree);
					}
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:354:18: (
					// BINARY )?
					int alt229 = 2;
					int LA229_0 = input.LA(1);

					if ((LA229_0 == BINARY)) {
						alt229 = 1;
					}
					switch (alt229) {
					case 1:
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:354:19:
					// BINARY
					{
						BINARY539 = (Token) match(input, BINARY,
								FOLLOW_BINARY_in_column_data_type_header3391);
						if (state.failed)
							return retval;
						if (state.backtracking == 0) {
							BINARY539_tree = (Object) adaptor.create(BINARY539);
							adaptor.addChild(root_0, BINARY539_tree);
						}

					}
						break;

					}

					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:354:28: (
					// CHARACTER_SYM SET_SYM charset_name )?
					int alt230 = 2;
					int LA230_0 = input.LA(1);

					if ((LA230_0 == CHARACTER_SYM)) {
						alt230 = 1;
					}
					switch (alt230) {
					case 1:
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:354:29:
					// CHARACTER_SYM SET_SYM charset_name
					{
						CHARACTER_SYM540 = (Token) match(input, CHARACTER_SYM,
								FOLLOW_CHARACTER_SYM_in_column_data_type_header3396);
						if (state.failed)
							return retval;
						if (state.backtracking == 0) {
							CHARACTER_SYM540_tree = (Object) adaptor
									.create(CHARACTER_SYM540);
							adaptor.addChild(root_0, CHARACTER_SYM540_tree);
						}
						SET_SYM541 = (Token) match(input, SET_SYM,
								FOLLOW_SET_SYM_in_column_data_type_header3398);
						if (state.failed)
							return retval;
						if (state.backtracking == 0) {
							SET_SYM541_tree = (Object) adaptor
									.create(SET_SYM541);
							adaptor.addChild(root_0, SET_SYM541_tree);
						}
						pushFollow(FOLLOW_charset_name_in_column_data_type_header3400);
						charset_name542 = charset_name();

						state._fsp--;
						if (state.failed)
							return retval;
						if (state.backtracking == 0)
							adaptor.addChild(root_0, charset_name542.getTree());

					}
						break;

					}

					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:354:66: (
					// COLLATE_SYM collation_name )?
					int alt231 = 2;
					int LA231_0 = input.LA(1);

					if ((LA231_0 == COLLATE_SYM)) {
						alt231 = 1;
					}
					switch (alt231) {
					case 1:
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:354:67:
					// COLLATE_SYM collation_name
					{
						COLLATE_SYM543 = (Token) match(input, COLLATE_SYM,
								FOLLOW_COLLATE_SYM_in_column_data_type_header3405);
						if (state.failed)
							return retval;
						if (state.backtracking == 0) {
							COLLATE_SYM543_tree = (Object) adaptor
									.create(COLLATE_SYM543);
							adaptor.addChild(root_0, COLLATE_SYM543_tree);
						}
						pushFollow(FOLLOW_collation_name_in_column_data_type_header3407);
						collation_name544 = collation_name();

						state._fsp--;
						if (state.failed)
							return retval;
						if (state.backtracking == 0)
							adaptor.addChild(root_0,
									collation_name544.getTree());

					}
						break;

					}

					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:354:96: (
					// null_or_notnull )?
					int alt232 = 2;
					int LA232_0 = input.LA(1);

					if ((LA232_0 == NOT_SYM || LA232_0 == NULL_SYM)) {
						alt232 = 1;
					}
					switch (alt232) {
					case 1:
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:354:97:
					// null_or_notnull
					{
						pushFollow(FOLLOW_null_or_notnull_in_column_data_type_header3412);
						null_or_notnull545 = null_or_notnull();

						state._fsp--;
						if (state.failed)
							return retval;
						if (state.backtracking == 0)
							adaptor.addChild(root_0,
									null_or_notnull545.getTree());

					}
						break;

					}

				}

			}
				break;
			case 28:
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:355:4: ( MEDIUMTEXT (
			// BINARY )? ( CHARACTER_SYM SET_SYM charset_name )? ( COLLATE_SYM
			// collation_name )? ( null_or_notnull )? )
			{
				root_0 = (Object) adaptor.nil();

				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:355:4: (
				// MEDIUMTEXT ( BINARY )? ( CHARACTER_SYM SET_SYM charset_name
				// )? ( COLLATE_SYM collation_name )? ( null_or_notnull )? )
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:355:7: MEDIUMTEXT
				// ( BINARY )? ( CHARACTER_SYM SET_SYM charset_name )? (
				// COLLATE_SYM collation_name )? ( null_or_notnull )?
				{
					MEDIUMTEXT546 = (Token) match(input, MEDIUMTEXT,
							FOLLOW_MEDIUMTEXT_in_column_data_type_header3425);
					if (state.failed)
						return retval;
					if (state.backtracking == 0) {
						MEDIUMTEXT546_tree = (Object) adaptor
								.create(MEDIUMTEXT546);
						adaptor.addChild(root_0, MEDIUMTEXT546_tree);
					}
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:355:18: (
					// BINARY )?
					int alt233 = 2;
					int LA233_0 = input.LA(1);

					if ((LA233_0 == BINARY)) {
						alt233 = 1;
					}
					switch (alt233) {
					case 1:
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:355:19:
					// BINARY
					{
						BINARY547 = (Token) match(input, BINARY,
								FOLLOW_BINARY_in_column_data_type_header3428);
						if (state.failed)
							return retval;
						if (state.backtracking == 0) {
							BINARY547_tree = (Object) adaptor.create(BINARY547);
							adaptor.addChild(root_0, BINARY547_tree);
						}

					}
						break;

					}

					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:355:28: (
					// CHARACTER_SYM SET_SYM charset_name )?
					int alt234 = 2;
					int LA234_0 = input.LA(1);

					if ((LA234_0 == CHARACTER_SYM)) {
						alt234 = 1;
					}
					switch (alt234) {
					case 1:
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:355:29:
					// CHARACTER_SYM SET_SYM charset_name
					{
						CHARACTER_SYM548 = (Token) match(input, CHARACTER_SYM,
								FOLLOW_CHARACTER_SYM_in_column_data_type_header3433);
						if (state.failed)
							return retval;
						if (state.backtracking == 0) {
							CHARACTER_SYM548_tree = (Object) adaptor
									.create(CHARACTER_SYM548);
							adaptor.addChild(root_0, CHARACTER_SYM548_tree);
						}
						SET_SYM549 = (Token) match(input, SET_SYM,
								FOLLOW_SET_SYM_in_column_data_type_header3435);
						if (state.failed)
							return retval;
						if (state.backtracking == 0) {
							SET_SYM549_tree = (Object) adaptor
									.create(SET_SYM549);
							adaptor.addChild(root_0, SET_SYM549_tree);
						}
						pushFollow(FOLLOW_charset_name_in_column_data_type_header3437);
						charset_name550 = charset_name();

						state._fsp--;
						if (state.failed)
							return retval;
						if (state.backtracking == 0)
							adaptor.addChild(root_0, charset_name550.getTree());

					}
						break;

					}

					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:355:66: (
					// COLLATE_SYM collation_name )?
					int alt235 = 2;
					int LA235_0 = input.LA(1);

					if ((LA235_0 == COLLATE_SYM)) {
						alt235 = 1;
					}
					switch (alt235) {
					case 1:
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:355:67:
					// COLLATE_SYM collation_name
					{
						COLLATE_SYM551 = (Token) match(input, COLLATE_SYM,
								FOLLOW_COLLATE_SYM_in_column_data_type_header3442);
						if (state.failed)
							return retval;
						if (state.backtracking == 0) {
							COLLATE_SYM551_tree = (Object) adaptor
									.create(COLLATE_SYM551);
							adaptor.addChild(root_0, COLLATE_SYM551_tree);
						}
						pushFollow(FOLLOW_collation_name_in_column_data_type_header3444);
						collation_name552 = collation_name();

						state._fsp--;
						if (state.failed)
							return retval;
						if (state.backtracking == 0)
							adaptor.addChild(root_0,
									collation_name552.getTree());

					}
						break;

					}

					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:355:96: (
					// null_or_notnull )?
					int alt236 = 2;
					int LA236_0 = input.LA(1);

					if ((LA236_0 == NOT_SYM || LA236_0 == NULL_SYM)) {
						alt236 = 1;
					}
					switch (alt236) {
					case 1:
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:355:97:
					// null_or_notnull
					{
						pushFollow(FOLLOW_null_or_notnull_in_column_data_type_header3449);
						null_or_notnull553 = null_or_notnull();

						state._fsp--;
						if (state.failed)
							return retval;
						if (state.backtracking == 0)
							adaptor.addChild(root_0,
									null_or_notnull553.getTree());

					}
						break;

					}

				}

			}
				break;
			case 29:
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:356:4: ( LONGTEXT (
			// BINARY )? ( CHARACTER_SYM SET_SYM charset_name )? ( COLLATE_SYM
			// collation_name )? ( null_or_notnull )? )
			{
				root_0 = (Object) adaptor.nil();

				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:356:4: ( LONGTEXT
				// ( BINARY )? ( CHARACTER_SYM SET_SYM charset_name )? (
				// COLLATE_SYM collation_name )? ( null_or_notnull )? )
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:356:7: LONGTEXT (
				// BINARY )? ( CHARACTER_SYM SET_SYM charset_name )? (
				// COLLATE_SYM collation_name )? ( null_or_notnull )?
				{
					LONGTEXT554 = (Token) match(input, LONGTEXT,
							FOLLOW_LONGTEXT_in_column_data_type_header3462);
					if (state.failed)
						return retval;
					if (state.backtracking == 0) {
						LONGTEXT554_tree = (Object) adaptor.create(LONGTEXT554);
						adaptor.addChild(root_0, LONGTEXT554_tree);
					}
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:356:18: (
					// BINARY )?
					int alt237 = 2;
					int LA237_0 = input.LA(1);

					if ((LA237_0 == BINARY)) {
						alt237 = 1;
					}
					switch (alt237) {
					case 1:
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:356:19:
					// BINARY
					{
						BINARY555 = (Token) match(input, BINARY,
								FOLLOW_BINARY_in_column_data_type_header3467);
						if (state.failed)
							return retval;
						if (state.backtracking == 0) {
							BINARY555_tree = (Object) adaptor.create(BINARY555);
							adaptor.addChild(root_0, BINARY555_tree);
						}

					}
						break;

					}

					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:356:28: (
					// CHARACTER_SYM SET_SYM charset_name )?
					int alt238 = 2;
					int LA238_0 = input.LA(1);

					if ((LA238_0 == CHARACTER_SYM)) {
						alt238 = 1;
					}
					switch (alt238) {
					case 1:
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:356:29:
					// CHARACTER_SYM SET_SYM charset_name
					{
						CHARACTER_SYM556 = (Token) match(input, CHARACTER_SYM,
								FOLLOW_CHARACTER_SYM_in_column_data_type_header3472);
						if (state.failed)
							return retval;
						if (state.backtracking == 0) {
							CHARACTER_SYM556_tree = (Object) adaptor
									.create(CHARACTER_SYM556);
							adaptor.addChild(root_0, CHARACTER_SYM556_tree);
						}
						SET_SYM557 = (Token) match(input, SET_SYM,
								FOLLOW_SET_SYM_in_column_data_type_header3474);
						if (state.failed)
							return retval;
						if (state.backtracking == 0) {
							SET_SYM557_tree = (Object) adaptor
									.create(SET_SYM557);
							adaptor.addChild(root_0, SET_SYM557_tree);
						}
						pushFollow(FOLLOW_charset_name_in_column_data_type_header3476);
						charset_name558 = charset_name();

						state._fsp--;
						if (state.failed)
							return retval;
						if (state.backtracking == 0)
							adaptor.addChild(root_0, charset_name558.getTree());

					}
						break;

					}

					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:356:66: (
					// COLLATE_SYM collation_name )?
					int alt239 = 2;
					int LA239_0 = input.LA(1);

					if ((LA239_0 == COLLATE_SYM)) {
						alt239 = 1;
					}
					switch (alt239) {
					case 1:
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:356:67:
					// COLLATE_SYM collation_name
					{
						COLLATE_SYM559 = (Token) match(input, COLLATE_SYM,
								FOLLOW_COLLATE_SYM_in_column_data_type_header3481);
						if (state.failed)
							return retval;
						if (state.backtracking == 0) {
							COLLATE_SYM559_tree = (Object) adaptor
									.create(COLLATE_SYM559);
							adaptor.addChild(root_0, COLLATE_SYM559_tree);
						}
						pushFollow(FOLLOW_collation_name_in_column_data_type_header3483);
						collation_name560 = collation_name();

						state._fsp--;
						if (state.failed)
							return retval;
						if (state.backtracking == 0)
							adaptor.addChild(root_0,
									collation_name560.getTree());

					}
						break;

					}

					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:356:96: (
					// null_or_notnull )?
					int alt240 = 2;
					int LA240_0 = input.LA(1);

					if ((LA240_0 == NOT_SYM || LA240_0 == NULL_SYM)) {
						alt240 = 1;
					}
					switch (alt240) {
					case 1:
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:356:97:
					// null_or_notnull
					{
						pushFollow(FOLLOW_null_or_notnull_in_column_data_type_header3488);
						null_or_notnull561 = null_or_notnull();

						state._fsp--;
						if (state.failed)
							return retval;
						if (state.backtracking == 0)
							adaptor.addChild(root_0,
									null_or_notnull561.getTree());

					}
						break;

					}

				}

			}
				break;
			case 30:
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:357:4: ( ENUM LPAREN
			// TEXT_STRING ( COMMA TEXT_STRING )* RPAREN ( CHARACTER_SYM SET_SYM
			// charset_name )? ( COLLATE_SYM collation_name )? ( null_or_notnull
			// )? ( DEFAULT TEXT_STRING )? )
			{
				root_0 = (Object) adaptor.nil();

				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:357:4: ( ENUM
				// LPAREN TEXT_STRING ( COMMA TEXT_STRING )* RPAREN (
				// CHARACTER_SYM SET_SYM charset_name )? ( COLLATE_SYM
				// collation_name )? ( null_or_notnull )? ( DEFAULT TEXT_STRING
				// )? )
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:357:7: ENUM
				// LPAREN TEXT_STRING ( COMMA TEXT_STRING )* RPAREN (
				// CHARACTER_SYM SET_SYM charset_name )? ( COLLATE_SYM
				// collation_name )? ( null_or_notnull )? ( DEFAULT TEXT_STRING
				// )?
				{
					ENUM562 = (Token) match(input, ENUM,
							FOLLOW_ENUM_in_column_data_type_header3501);
					if (state.failed)
						return retval;
					if (state.backtracking == 0) {
						ENUM562_tree = (Object) adaptor.create(ENUM562);
						adaptor.addChild(root_0, ENUM562_tree);
					}
					LPAREN563 = (Token) match(input, LPAREN,
							FOLLOW_LPAREN_in_column_data_type_header3506);
					if (state.failed)
						return retval;
					if (state.backtracking == 0) {
						LPAREN563_tree = (Object) adaptor.create(LPAREN563);
						adaptor.addChild(root_0, LPAREN563_tree);
					}
					TEXT_STRING564 = (Token) match(input, TEXT_STRING,
							FOLLOW_TEXT_STRING_in_column_data_type_header3508);
					if (state.failed)
						return retval;
					if (state.backtracking == 0) {
						TEXT_STRING564_tree = (Object) adaptor
								.create(TEXT_STRING564);
						adaptor.addChild(root_0, TEXT_STRING564_tree);
					}
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:357:34: (
					// COMMA TEXT_STRING )*
					loop241: do {
						int alt241 = 2;
						int LA241_0 = input.LA(1);

						if ((LA241_0 == COMMA)) {
							alt241 = 1;
						}

						switch (alt241) {
						case 1:
						// C:\\Users\\grand\\Desktop\\another\\MySQL.g:357:35:
						// COMMA TEXT_STRING
						{
							COMMA565 = (Token) match(input, COMMA,
									FOLLOW_COMMA_in_column_data_type_header3511);
							if (state.failed)
								return retval;
							if (state.backtracking == 0) {
								COMMA565_tree = (Object) adaptor
										.create(COMMA565);
								adaptor.addChild(root_0, COMMA565_tree);
							}
							TEXT_STRING566 = (Token) match(input, TEXT_STRING,
									FOLLOW_TEXT_STRING_in_column_data_type_header3513);
							if (state.failed)
								return retval;
							if (state.backtracking == 0) {
								TEXT_STRING566_tree = (Object) adaptor
										.create(TEXT_STRING566);
								adaptor.addChild(root_0, TEXT_STRING566_tree);
							}

						}
							break;

						default:
							break loop241;
						}
					} while (true);

					RPAREN567 = (Token) match(input, RPAREN,
							FOLLOW_RPAREN_in_column_data_type_header3517);
					if (state.failed)
						return retval;
					if (state.backtracking == 0) {
						RPAREN567_tree = (Object) adaptor.create(RPAREN567);
						adaptor.addChild(root_0, RPAREN567_tree);
					}
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:357:62: (
					// CHARACTER_SYM SET_SYM charset_name )?
					int alt242 = 2;
					int LA242_0 = input.LA(1);

					if ((LA242_0 == CHARACTER_SYM)) {
						alt242 = 1;
					}
					switch (alt242) {
					case 1:
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:357:63:
					// CHARACTER_SYM SET_SYM charset_name
					{
						CHARACTER_SYM568 = (Token) match(input, CHARACTER_SYM,
								FOLLOW_CHARACTER_SYM_in_column_data_type_header3520);
						if (state.failed)
							return retval;
						if (state.backtracking == 0) {
							CHARACTER_SYM568_tree = (Object) adaptor
									.create(CHARACTER_SYM568);
							adaptor.addChild(root_0, CHARACTER_SYM568_tree);
						}
						SET_SYM569 = (Token) match(input, SET_SYM,
								FOLLOW_SET_SYM_in_column_data_type_header3522);
						if (state.failed)
							return retval;
						if (state.backtracking == 0) {
							SET_SYM569_tree = (Object) adaptor
									.create(SET_SYM569);
							adaptor.addChild(root_0, SET_SYM569_tree);
						}
						pushFollow(FOLLOW_charset_name_in_column_data_type_header3524);
						charset_name570 = charset_name();

						state._fsp--;
						if (state.failed)
							return retval;
						if (state.backtracking == 0)
							adaptor.addChild(root_0, charset_name570.getTree());

					}
						break;

					}

					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:357:100: (
					// COLLATE_SYM collation_name )?
					int alt243 = 2;
					int LA243_0 = input.LA(1);

					if ((LA243_0 == COLLATE_SYM)) {
						alt243 = 1;
					}
					switch (alt243) {
					case 1:
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:357:101:
					// COLLATE_SYM collation_name
					{
						COLLATE_SYM571 = (Token) match(input, COLLATE_SYM,
								FOLLOW_COLLATE_SYM_in_column_data_type_header3529);
						if (state.failed)
							return retval;
						if (state.backtracking == 0) {
							COLLATE_SYM571_tree = (Object) adaptor
									.create(COLLATE_SYM571);
							adaptor.addChild(root_0, COLLATE_SYM571_tree);
						}
						pushFollow(FOLLOW_collation_name_in_column_data_type_header3531);
						collation_name572 = collation_name();

						state._fsp--;
						if (state.failed)
							return retval;
						if (state.backtracking == 0)
							adaptor.addChild(root_0,
									collation_name572.getTree());

					}
						break;

					}

					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:357:130: (
					// null_or_notnull )?
					int alt244 = 2;
					int LA244_0 = input.LA(1);

					if ((LA244_0 == NOT_SYM || LA244_0 == NULL_SYM)) {
						alt244 = 1;
					}
					switch (alt244) {
					case 1:
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:357:131:
					// null_or_notnull
					{
						pushFollow(FOLLOW_null_or_notnull_in_column_data_type_header3536);
						null_or_notnull573 = null_or_notnull();

						state._fsp--;
						if (state.failed)
							return retval;
						if (state.backtracking == 0)
							adaptor.addChild(root_0,
									null_or_notnull573.getTree());

					}
						break;

					}

					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:357:149: (
					// DEFAULT TEXT_STRING )?
					int alt245 = 2;
					int LA245_0 = input.LA(1);

					if ((LA245_0 == DEFAULT)) {
						alt245 = 1;
					}
					switch (alt245) {
					case 1:
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:357:150:
					// DEFAULT TEXT_STRING
					{
						DEFAULT574 = (Token) match(input, DEFAULT,
								FOLLOW_DEFAULT_in_column_data_type_header3541);
						if (state.failed)
							return retval;
						if (state.backtracking == 0) {
							DEFAULT574_tree = (Object) adaptor
									.create(DEFAULT574);
							adaptor.addChild(root_0, DEFAULT574_tree);
						}
						TEXT_STRING575 = (Token) match(input, TEXT_STRING,
								FOLLOW_TEXT_STRING_in_column_data_type_header3543);
						if (state.failed)
							return retval;
						if (state.backtracking == 0) {
							TEXT_STRING575_tree = (Object) adaptor
									.create(TEXT_STRING575);
							adaptor.addChild(root_0, TEXT_STRING575_tree);
						}

					}
						break;

					}

				}

			}
				break;
			case 31:
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:358:4: ( SET_SYM
			// LPAREN TEXT_STRING ( COMMA TEXT_STRING )* RPAREN ( CHARACTER_SYM
			// SET_SYM charset_name )? ( COLLATE_SYM collation_name )? (
			// null_or_notnull )? ( DEFAULT TEXT_STRING )? )
			{
				root_0 = (Object) adaptor.nil();

				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:358:4: ( SET_SYM
				// LPAREN TEXT_STRING ( COMMA TEXT_STRING )* RPAREN (
				// CHARACTER_SYM SET_SYM charset_name )? ( COLLATE_SYM
				// collation_name )? ( null_or_notnull )? ( DEFAULT TEXT_STRING
				// )? )
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:358:7: SET_SYM
				// LPAREN TEXT_STRING ( COMMA TEXT_STRING )* RPAREN (
				// CHARACTER_SYM SET_SYM charset_name )? ( COLLATE_SYM
				// collation_name )? ( null_or_notnull )? ( DEFAULT TEXT_STRING
				// )?
				{
					SET_SYM576 = (Token) match(input, SET_SYM,
							FOLLOW_SET_SYM_in_column_data_type_header3556);
					if (state.failed)
						return retval;
					if (state.backtracking == 0) {
						SET_SYM576_tree = (Object) adaptor.create(SET_SYM576);
						adaptor.addChild(root_0, SET_SYM576_tree);
					}
					LPAREN577 = (Token) match(input, LPAREN,
							FOLLOW_LPAREN_in_column_data_type_header3558);
					if (state.failed)
						return retval;
					if (state.backtracking == 0) {
						LPAREN577_tree = (Object) adaptor.create(LPAREN577);
						adaptor.addChild(root_0, LPAREN577_tree);
					}
					TEXT_STRING578 = (Token) match(input, TEXT_STRING,
							FOLLOW_TEXT_STRING_in_column_data_type_header3560);
					if (state.failed)
						return retval;
					if (state.backtracking == 0) {
						TEXT_STRING578_tree = (Object) adaptor
								.create(TEXT_STRING578);
						adaptor.addChild(root_0, TEXT_STRING578_tree);
					}
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:358:34: (
					// COMMA TEXT_STRING )*
					loop246: do {
						int alt246 = 2;
						int LA246_0 = input.LA(1);

						if ((LA246_0 == COMMA)) {
							alt246 = 1;
						}

						switch (alt246) {
						case 1:
						// C:\\Users\\grand\\Desktop\\another\\MySQL.g:358:35:
						// COMMA TEXT_STRING
						{
							COMMA579 = (Token) match(input, COMMA,
									FOLLOW_COMMA_in_column_data_type_header3563);
							if (state.failed)
								return retval;
							if (state.backtracking == 0) {
								COMMA579_tree = (Object) adaptor
										.create(COMMA579);
								adaptor.addChild(root_0, COMMA579_tree);
							}
							TEXT_STRING580 = (Token) match(input, TEXT_STRING,
									FOLLOW_TEXT_STRING_in_column_data_type_header3565);
							if (state.failed)
								return retval;
							if (state.backtracking == 0) {
								TEXT_STRING580_tree = (Object) adaptor
										.create(TEXT_STRING580);
								adaptor.addChild(root_0, TEXT_STRING580_tree);
							}

						}
							break;

						default:
							break loop246;
						}
					} while (true);

					RPAREN581 = (Token) match(input, RPAREN,
							FOLLOW_RPAREN_in_column_data_type_header3569);
					if (state.failed)
						return retval;
					if (state.backtracking == 0) {
						RPAREN581_tree = (Object) adaptor.create(RPAREN581);
						adaptor.addChild(root_0, RPAREN581_tree);
					}
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:358:62: (
					// CHARACTER_SYM SET_SYM charset_name )?
					int alt247 = 2;
					int LA247_0 = input.LA(1);

					if ((LA247_0 == CHARACTER_SYM)) {
						alt247 = 1;
					}
					switch (alt247) {
					case 1:
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:358:63:
					// CHARACTER_SYM SET_SYM charset_name
					{
						CHARACTER_SYM582 = (Token) match(input, CHARACTER_SYM,
								FOLLOW_CHARACTER_SYM_in_column_data_type_header3572);
						if (state.failed)
							return retval;
						if (state.backtracking == 0) {
							CHARACTER_SYM582_tree = (Object) adaptor
									.create(CHARACTER_SYM582);
							adaptor.addChild(root_0, CHARACTER_SYM582_tree);
						}
						SET_SYM583 = (Token) match(input, SET_SYM,
								FOLLOW_SET_SYM_in_column_data_type_header3574);
						if (state.failed)
							return retval;
						if (state.backtracking == 0) {
							SET_SYM583_tree = (Object) adaptor
									.create(SET_SYM583);
							adaptor.addChild(root_0, SET_SYM583_tree);
						}
						pushFollow(FOLLOW_charset_name_in_column_data_type_header3576);
						charset_name584 = charset_name();

						state._fsp--;
						if (state.failed)
							return retval;
						if (state.backtracking == 0)
							adaptor.addChild(root_0, charset_name584.getTree());

					}
						break;

					}

					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:358:100: (
					// COLLATE_SYM collation_name )?
					int alt248 = 2;
					int LA248_0 = input.LA(1);

					if ((LA248_0 == COLLATE_SYM)) {
						alt248 = 1;
					}
					switch (alt248) {
					case 1:
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:358:101:
					// COLLATE_SYM collation_name
					{
						COLLATE_SYM585 = (Token) match(input, COLLATE_SYM,
								FOLLOW_COLLATE_SYM_in_column_data_type_header3581);
						if (state.failed)
							return retval;
						if (state.backtracking == 0) {
							COLLATE_SYM585_tree = (Object) adaptor
									.create(COLLATE_SYM585);
							adaptor.addChild(root_0, COLLATE_SYM585_tree);
						}
						pushFollow(FOLLOW_collation_name_in_column_data_type_header3583);
						collation_name586 = collation_name();

						state._fsp--;
						if (state.failed)
							return retval;
						if (state.backtracking == 0)
							adaptor.addChild(root_0,
									collation_name586.getTree());

					}
						break;

					}

					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:358:130: (
					// null_or_notnull )?
					int alt249 = 2;
					int LA249_0 = input.LA(1);

					if ((LA249_0 == NOT_SYM || LA249_0 == NULL_SYM)) {
						alt249 = 1;
					}
					switch (alt249) {
					case 1:
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:358:131:
					// null_or_notnull
					{
						pushFollow(FOLLOW_null_or_notnull_in_column_data_type_header3588);
						null_or_notnull587 = null_or_notnull();

						state._fsp--;
						if (state.failed)
							return retval;
						if (state.backtracking == 0)
							adaptor.addChild(root_0,
									null_or_notnull587.getTree());

					}
						break;

					}

					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:358:149: (
					// DEFAULT TEXT_STRING )?
					int alt250 = 2;
					int LA250_0 = input.LA(1);

					if ((LA250_0 == DEFAULT)) {
						alt250 = 1;
					}
					switch (alt250) {
					case 1:
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:358:150:
					// DEFAULT TEXT_STRING
					{
						DEFAULT588 = (Token) match(input, DEFAULT,
								FOLLOW_DEFAULT_in_column_data_type_header3593);
						if (state.failed)
							return retval;
						if (state.backtracking == 0) {
							DEFAULT588_tree = (Object) adaptor
									.create(DEFAULT588);
							adaptor.addChild(root_0, DEFAULT588_tree);
						}
						TEXT_STRING589 = (Token) match(input, TEXT_STRING,
								FOLLOW_TEXT_STRING_in_column_data_type_header3595);
						if (state.failed)
							return retval;
						if (state.backtracking == 0) {
							TEXT_STRING589_tree = (Object) adaptor
									.create(TEXT_STRING589);
							adaptor.addChild(root_0, TEXT_STRING589_tree);
						}

					}
						break;

					}

				}

			}
				break;

			}
			retval.stop = input.LT(-1);

			if (state.backtracking == 0) {

				retval.tree = (Object) adaptor.rulePostProcessing(root_0);
				adaptor.setTokenBoundaries(retval.tree, retval.start,
						retval.stop);
			}
		} catch (RecognitionException re) {
			reportError(re);
			recover(input, re);
			retval.tree = (Object) adaptor.errorNode(input, retval.start,
					input.LT(-1), re);

		} finally {
		}
		return retval;
	}

	// $ANTLR end "column_data_type_header"

	public static class index_column_name_return extends ParserRuleReturnScope {
		Object tree;

		public Object getTree() {
			return tree;
		}
	};

	// $ANTLR start "index_column_name"
	// C:\\Users\\grand\\Desktop\\another\\MySQL.g:362:1: index_column_name :
	// column_name ( LPAREN INTEGER_NUM RPAREN )? ( ASC | DESC )? -> column_name
	// ;
	public final MySQLParser.index_column_name_return index_column_name()
			throws RecognitionException {
		MySQLParser.index_column_name_return retval = new MySQLParser.index_column_name_return();
		retval.start = input.LT(1);

		Object root_0 = null;

		Token LPAREN591 = null;
		Token INTEGER_NUM592 = null;
		Token RPAREN593 = null;
		Token ASC594 = null;
		Token DESC595 = null;
		MySQLParser.column_name_return column_name590 = null;

		Object LPAREN591_tree = null;
		Object INTEGER_NUM592_tree = null;
		Object RPAREN593_tree = null;
		Object ASC594_tree = null;
		Object DESC595_tree = null;
		RewriteRuleTokenStream stream_RPAREN = new RewriteRuleTokenStream(
				adaptor, "token RPAREN");
		RewriteRuleTokenStream stream_ASC = new RewriteRuleTokenStream(adaptor,
				"token ASC");
		RewriteRuleTokenStream stream_DESC = new RewriteRuleTokenStream(
				adaptor, "token DESC");
		RewriteRuleTokenStream stream_INTEGER_NUM = new RewriteRuleTokenStream(
				adaptor, "token INTEGER_NUM");
		RewriteRuleTokenStream stream_LPAREN = new RewriteRuleTokenStream(
				adaptor, "token LPAREN");
		RewriteRuleSubtreeStream stream_column_name = new RewriteRuleSubtreeStream(
				adaptor, "rule column_name");
		try {
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:362:18: ( column_name
			// ( LPAREN INTEGER_NUM RPAREN )? ( ASC | DESC )? -> column_name )
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:363:2: column_name (
			// LPAREN INTEGER_NUM RPAREN )? ( ASC | DESC )?
			{
				pushFollow(FOLLOW_column_name_in_index_column_name3611);
				column_name590 = column_name();

				state._fsp--;
				if (state.failed)
					return retval;
				if (state.backtracking == 0)
					stream_column_name.add(column_name590.getTree());
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:363:14: ( LPAREN
				// INTEGER_NUM RPAREN )?
				int alt252 = 2;
				int LA252_0 = input.LA(1);

				if ((LA252_0 == LPAREN)) {
					alt252 = 1;
				}
				switch (alt252) {
				case 1:
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:363:15: LPAREN
				// INTEGER_NUM RPAREN
				{
					LPAREN591 = (Token) match(input, LPAREN,
							FOLLOW_LPAREN_in_index_column_name3614);
					if (state.failed)
						return retval;
					if (state.backtracking == 0)
						stream_LPAREN.add(LPAREN591);

					INTEGER_NUM592 = (Token) match(input, INTEGER_NUM,
							FOLLOW_INTEGER_NUM_in_index_column_name3616);
					if (state.failed)
						return retval;
					if (state.backtracking == 0)
						stream_INTEGER_NUM.add(INTEGER_NUM592);

					RPAREN593 = (Token) match(input, RPAREN,
							FOLLOW_RPAREN_in_index_column_name3618);
					if (state.failed)
						return retval;
					if (state.backtracking == 0)
						stream_RPAREN.add(RPAREN593);

				}
					break;

				}

				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:363:43: ( ASC |
				// DESC )?
				int alt253 = 3;
				int LA253_0 = input.LA(1);

				if ((LA253_0 == ASC)) {
					alt253 = 1;
				} else if ((LA253_0 == DESC)) {
					alt253 = 2;
				}
				switch (alt253) {
				case 1:
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:363:44: ASC
				{
					ASC594 = (Token) match(input, ASC,
							FOLLOW_ASC_in_index_column_name3623);
					if (state.failed)
						return retval;
					if (state.backtracking == 0)
						stream_ASC.add(ASC594);

				}
					break;
				case 2:
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:363:50: DESC
				{
					DESC595 = (Token) match(input, DESC,
							FOLLOW_DESC_in_index_column_name3627);
					if (state.failed)
						return retval;
					if (state.backtracking == 0)
						stream_DESC.add(DESC595);

				}
					break;

				}

				// AST REWRITE
				// elements: column_name
				// token labels:
				// rule labels: retval
				// token list labels:
				// rule list labels:
				// wildcard labels:
				if (state.backtracking == 0) {
					retval.tree = root_0;
					RewriteRuleSubtreeStream stream_retval = new RewriteRuleSubtreeStream(
							adaptor, "rule retval",
							retval != null ? retval.tree : null);

					root_0 = (Object) adaptor.nil();
					// 363:57: -> column_name
					{
						adaptor.addChild(root_0, stream_column_name.nextTree());

					}

					retval.tree = root_0;
				}
			}

			retval.stop = input.LT(-1);

			if (state.backtracking == 0) {

				retval.tree = (Object) adaptor.rulePostProcessing(root_0);
				adaptor.setTokenBoundaries(retval.tree, retval.start,
						retval.stop);
			}
		} catch (RecognitionException re) {
			reportError(re);
			recover(input, re);
			retval.tree = (Object) adaptor.errorNode(input, retval.start,
					input.LT(-1), re);

		} finally {
		}
		return retval;
	}

	// $ANTLR end "index_column_name"

	public static class reference_definition_return extends
			ParserRuleReturnScope {
		Object tree;

		public Object getTree() {
			return tree;
		}
	};

	// $ANTLR start "reference_definition"
	// C:\\Users\\grand\\Desktop\\another\\MySQL.g:366:1: reference_definition :
	// REFERENCES table_name LPAREN index_column_name ( COMMA index_column_name
	// )* RPAREN ( ( MATCH FULL ) | ( MATCH PARTIAL ) | ( MATCH SIMPLE_SYM ) )?
	// ( ON DELETE_SYM reference_option )? ( ON UPDATE reference_option )? ->;
	public final MySQLParser.reference_definition_return reference_definition()
			throws RecognitionException {
		MySQLParser.reference_definition_return retval = new MySQLParser.reference_definition_return();
		retval.start = input.LT(1);

		Object root_0 = null;

		Token REFERENCES596 = null;
		Token LPAREN598 = null;
		Token COMMA600 = null;
		Token RPAREN602 = null;
		Token MATCH603 = null;
		Token FULL604 = null;
		Token MATCH605 = null;
		Token PARTIAL606 = null;
		Token MATCH607 = null;
		Token SIMPLE_SYM608 = null;
		Token ON609 = null;
		Token DELETE_SYM610 = null;
		Token ON612 = null;
		Token UPDATE613 = null;
		MySQLParser.table_name_return table_name597 = null;

		MySQLParser.index_column_name_return index_column_name599 = null;

		MySQLParser.index_column_name_return index_column_name601 = null;

		MySQLParser.reference_option_return reference_option611 = null;

		MySQLParser.reference_option_return reference_option614 = null;

		Object REFERENCES596_tree = null;
		Object LPAREN598_tree = null;
		Object COMMA600_tree = null;
		Object RPAREN602_tree = null;
		Object MATCH603_tree = null;
		Object FULL604_tree = null;
		Object MATCH605_tree = null;
		Object PARTIAL606_tree = null;
		Object MATCH607_tree = null;
		Object SIMPLE_SYM608_tree = null;
		Object ON609_tree = null;
		Object DELETE_SYM610_tree = null;
		Object ON612_tree = null;
		Object UPDATE613_tree = null;
		RewriteRuleTokenStream stream_SIMPLE_SYM = new RewriteRuleTokenStream(
				adaptor, "token SIMPLE_SYM");
		RewriteRuleTokenStream stream_ON = new RewriteRuleTokenStream(adaptor,
				"token ON");
		RewriteRuleTokenStream stream_UPDATE = new RewriteRuleTokenStream(
				adaptor, "token UPDATE");
		RewriteRuleTokenStream stream_RPAREN = new RewriteRuleTokenStream(
				adaptor, "token RPAREN");
		RewriteRuleTokenStream stream_MATCH = new RewriteRuleTokenStream(
				adaptor, "token MATCH");
		RewriteRuleTokenStream stream_FULL = new RewriteRuleTokenStream(
				adaptor, "token FULL");
		RewriteRuleTokenStream stream_DELETE_SYM = new RewriteRuleTokenStream(
				adaptor, "token DELETE_SYM");
		RewriteRuleTokenStream stream_REFERENCES = new RewriteRuleTokenStream(
				adaptor, "token REFERENCES");
		RewriteRuleTokenStream stream_COMMA = new RewriteRuleTokenStream(
				adaptor, "token COMMA");
		RewriteRuleTokenStream stream_LPAREN = new RewriteRuleTokenStream(
				adaptor, "token LPAREN");
		RewriteRuleTokenStream stream_PARTIAL = new RewriteRuleTokenStream(
				adaptor, "token PARTIAL");
		RewriteRuleSubtreeStream stream_table_name = new RewriteRuleSubtreeStream(
				adaptor, "rule table_name");
		RewriteRuleSubtreeStream stream_reference_option = new RewriteRuleSubtreeStream(
				adaptor, "rule reference_option");
		RewriteRuleSubtreeStream stream_index_column_name = new RewriteRuleSubtreeStream(
				adaptor, "rule index_column_name");
		try {
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:366:21: ( REFERENCES
			// table_name LPAREN index_column_name ( COMMA index_column_name )*
			// RPAREN ( ( MATCH FULL ) | ( MATCH PARTIAL ) | ( MATCH SIMPLE_SYM
			// ) )? ( ON DELETE_SYM reference_option )? ( ON UPDATE
			// reference_option )? ->)
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:367:2: REFERENCES
			// table_name LPAREN index_column_name ( COMMA index_column_name )*
			// RPAREN ( ( MATCH FULL ) | ( MATCH PARTIAL ) | ( MATCH SIMPLE_SYM
			// ) )? ( ON DELETE_SYM reference_option )? ( ON UPDATE
			// reference_option )?
			{
				REFERENCES596 = (Token) match(input, REFERENCES,
						FOLLOW_REFERENCES_in_reference_definition3642);
				if (state.failed)
					return retval;
				if (state.backtracking == 0)
					stream_REFERENCES.add(REFERENCES596);

				pushFollow(FOLLOW_table_name_in_reference_definition3644);
				table_name597 = table_name();

				state._fsp--;
				if (state.failed)
					return retval;
				if (state.backtracking == 0)
					stream_table_name.add(table_name597.getTree());
				LPAREN598 = (Token) match(input, LPAREN,
						FOLLOW_LPAREN_in_reference_definition3646);
				if (state.failed)
					return retval;
				if (state.backtracking == 0)
					stream_LPAREN.add(LPAREN598);

				pushFollow(FOLLOW_index_column_name_in_reference_definition3648);
				index_column_name599 = index_column_name();

				state._fsp--;
				if (state.failed)
					return retval;
				if (state.backtracking == 0)
					stream_index_column_name
							.add(index_column_name599.getTree());
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:367:49: ( COMMA
				// index_column_name )*
				loop254: do {
					int alt254 = 2;
					int LA254_0 = input.LA(1);

					if ((LA254_0 == COMMA)) {
						alt254 = 1;
					}

					switch (alt254) {
					case 1:
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:367:50: COMMA
					// index_column_name
					{
						COMMA600 = (Token) match(input, COMMA,
								FOLLOW_COMMA_in_reference_definition3651);
						if (state.failed)
							return retval;
						if (state.backtracking == 0)
							stream_COMMA.add(COMMA600);

						pushFollow(FOLLOW_index_column_name_in_reference_definition3653);
						index_column_name601 = index_column_name();

						state._fsp--;
						if (state.failed)
							return retval;
						if (state.backtracking == 0)
							stream_index_column_name.add(index_column_name601
									.getTree());

					}
						break;

					default:
						break loop254;
					}
				} while (true);

				RPAREN602 = (Token) match(input, RPAREN,
						FOLLOW_RPAREN_in_reference_definition3657);
				if (state.failed)
					return retval;
				if (state.backtracking == 0)
					stream_RPAREN.add(RPAREN602);

				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:368:2: ( ( MATCH
				// FULL ) | ( MATCH PARTIAL ) | ( MATCH SIMPLE_SYM ) )?
				int alt255 = 4;
				int LA255_0 = input.LA(1);

				if ((LA255_0 == MATCH)) {
					switch (input.LA(2)) {
					case FULL: {
						alt255 = 1;
					}
						break;
					case PARTIAL: {
						alt255 = 2;
					}
						break;
					case SIMPLE_SYM: {
						alt255 = 3;
					}
						break;
					}

				}
				switch (alt255) {
				case 1:
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:368:4: ( MATCH
				// FULL )
				{
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:368:4: (
					// MATCH FULL )
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:368:5: MATCH
					// FULL
					{
						MATCH603 = (Token) match(input, MATCH,
								FOLLOW_MATCH_in_reference_definition3663);
						if (state.failed)
							return retval;
						if (state.backtracking == 0)
							stream_MATCH.add(MATCH603);

						FULL604 = (Token) match(input, FULL,
								FOLLOW_FULL_in_reference_definition3665);
						if (state.failed)
							return retval;
						if (state.backtracking == 0)
							stream_FULL.add(FULL604);

					}

				}
					break;
				case 2:
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:368:19: ( MATCH
				// PARTIAL )
				{
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:368:19: (
					// MATCH PARTIAL )
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:368:20: MATCH
					// PARTIAL
					{
						MATCH605 = (Token) match(input, MATCH,
								FOLLOW_MATCH_in_reference_definition3671);
						if (state.failed)
							return retval;
						if (state.backtracking == 0)
							stream_MATCH.add(MATCH605);

						PARTIAL606 = (Token) match(input, PARTIAL,
								FOLLOW_PARTIAL_in_reference_definition3673);
						if (state.failed)
							return retval;
						if (state.backtracking == 0)
							stream_PARTIAL.add(PARTIAL606);

					}

				}
					break;
				case 3:
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:368:37: ( MATCH
				// SIMPLE_SYM )
				{
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:368:37: (
					// MATCH SIMPLE_SYM )
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:368:38: MATCH
					// SIMPLE_SYM
					{
						MATCH607 = (Token) match(input, MATCH,
								FOLLOW_MATCH_in_reference_definition3679);
						if (state.failed)
							return retval;
						if (state.backtracking == 0)
							stream_MATCH.add(MATCH607);

						SIMPLE_SYM608 = (Token) match(input, SIMPLE_SYM,
								FOLLOW_SIMPLE_SYM_in_reference_definition3681);
						if (state.failed)
							return retval;
						if (state.backtracking == 0)
							stream_SIMPLE_SYM.add(SIMPLE_SYM608);

					}

				}
					break;

				}

				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:369:2: ( ON
				// DELETE_SYM reference_option )?
				int alt256 = 2;
				int LA256_0 = input.LA(1);

				if ((LA256_0 == ON)) {
					int LA256_1 = input.LA(2);

					if ((LA256_1 == DELETE_SYM)) {
						alt256 = 1;
					}
				}
				switch (alt256) {
				case 1:
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:369:3: ON
				// DELETE_SYM reference_option
				{
					ON609 = (Token) match(input, ON,
							FOLLOW_ON_in_reference_definition3689);
					if (state.failed)
						return retval;
					if (state.backtracking == 0)
						stream_ON.add(ON609);

					DELETE_SYM610 = (Token) match(input, DELETE_SYM,
							FOLLOW_DELETE_SYM_in_reference_definition3691);
					if (state.failed)
						return retval;
					if (state.backtracking == 0)
						stream_DELETE_SYM.add(DELETE_SYM610);

					pushFollow(FOLLOW_reference_option_in_reference_definition3693);
					reference_option611 = reference_option();

					state._fsp--;
					if (state.failed)
						return retval;
					if (state.backtracking == 0)
						stream_reference_option.add(reference_option611
								.getTree());

				}
					break;

				}

				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:370:2: ( ON
				// UPDATE reference_option )?
				int alt257 = 2;
				int LA257_0 = input.LA(1);

				if ((LA257_0 == ON)) {
					alt257 = 1;
				}
				switch (alt257) {
				case 1:
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:370:3: ON UPDATE
				// reference_option
				{
					ON612 = (Token) match(input, ON,
							FOLLOW_ON_in_reference_definition3699);
					if (state.failed)
						return retval;
					if (state.backtracking == 0)
						stream_ON.add(ON612);

					UPDATE613 = (Token) match(input, UPDATE,
							FOLLOW_UPDATE_in_reference_definition3701);
					if (state.failed)
						return retval;
					if (state.backtracking == 0)
						stream_UPDATE.add(UPDATE613);

					pushFollow(FOLLOW_reference_option_in_reference_definition3703);
					reference_option614 = reference_option();

					state._fsp--;
					if (state.failed)
						return retval;
					if (state.backtracking == 0)
						stream_reference_option.add(reference_option614
								.getTree());

				}
					break;

				}

				// AST REWRITE
				// elements:
				// token labels:
				// rule labels: retval
				// token list labels:
				// rule list labels:
				// wildcard labels:
				if (state.backtracking == 0) {
					retval.tree = root_0;
					RewriteRuleSubtreeStream stream_retval = new RewriteRuleSubtreeStream(
							adaptor, "rule retval",
							retval != null ? retval.tree : null);

					root_0 = (Object) adaptor.nil();
					// 370:32: ->
					{
						root_0 = null;
					}

					retval.tree = root_0;
				}
			}

			retval.stop = input.LT(-1);

			if (state.backtracking == 0) {

				retval.tree = (Object) adaptor.rulePostProcessing(root_0);
				adaptor.setTokenBoundaries(retval.tree, retval.start,
						retval.stop);
			}
		} catch (RecognitionException re) {
			reportError(re);
			recover(input, re);
			retval.tree = (Object) adaptor.errorNode(input, retval.start,
					input.LT(-1), re);

		} finally {
		}
		return retval;
	}

	// $ANTLR end "reference_definition"

	public static class reference_option_return extends ParserRuleReturnScope {
		Object tree;

		public Object getTree() {
			return tree;
		}
	};

	// $ANTLR start "reference_option"
	// C:\\Users\\grand\\Desktop\\another\\MySQL.g:372:1: reference_option : ( (
	// RESTRICT ) | ( CASCADE ) | ( SET_SYM NULL_SYM ) | ( NO_SYM ACTION ) );
	public final MySQLParser.reference_option_return reference_option()
			throws RecognitionException {
		MySQLParser.reference_option_return retval = new MySQLParser.reference_option_return();
		retval.start = input.LT(1);

		Object root_0 = null;

		Token RESTRICT615 = null;
		Token CASCADE616 = null;
		Token SET_SYM617 = null;
		Token NULL_SYM618 = null;
		Token NO_SYM619 = null;
		Token ACTION620 = null;

		Object RESTRICT615_tree = null;
		Object CASCADE616_tree = null;
		Object SET_SYM617_tree = null;
		Object NULL_SYM618_tree = null;
		Object NO_SYM619_tree = null;
		Object ACTION620_tree = null;

		try {
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:372:17: ( ( RESTRICT
			// ) | ( CASCADE ) | ( SET_SYM NULL_SYM ) | ( NO_SYM ACTION ) )
			int alt258 = 4;
			switch (input.LA(1)) {
			case RESTRICT: {
				alt258 = 1;
			}
				break;
			case CASCADE: {
				alt258 = 2;
			}
				break;
			case SET_SYM: {
				alt258 = 3;
			}
				break;
			case NO_SYM: {
				alt258 = 4;
			}
				break;
			default:
				if (state.backtracking > 0) {
					state.failed = true;
					return retval;
				}
				NoViableAltException nvae = new NoViableAltException("", 258,
						0, input);

				throw nvae;
			}

			switch (alt258) {
			case 1:
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:373:2: ( RESTRICT )
			{
				root_0 = (Object) adaptor.nil();

				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:373:2: ( RESTRICT
				// )
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:373:3: RESTRICT
				{
					RESTRICT615 = (Token) match(input, RESTRICT,
							FOLLOW_RESTRICT_in_reference_option3716);
					if (state.failed)
						return retval;
					if (state.backtracking == 0) {
						RESTRICT615_tree = (Object) adaptor.create(RESTRICT615);
						adaptor.addChild(root_0, RESTRICT615_tree);
					}

				}

			}
				break;
			case 2:
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:373:15: ( CASCADE )
			{
				root_0 = (Object) adaptor.nil();

				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:373:15: ( CASCADE
				// )
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:373:16: CASCADE
				{
					CASCADE616 = (Token) match(input, CASCADE,
							FOLLOW_CASCADE_in_reference_option3722);
					if (state.failed)
						return retval;
					if (state.backtracking == 0) {
						CASCADE616_tree = (Object) adaptor.create(CASCADE616);
						adaptor.addChild(root_0, CASCADE616_tree);
					}

				}

			}
				break;
			case 3:
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:373:27: ( SET_SYM
			// NULL_SYM )
			{
				root_0 = (Object) adaptor.nil();

				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:373:27: ( SET_SYM
				// NULL_SYM )
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:373:28: SET_SYM
				// NULL_SYM
				{
					SET_SYM617 = (Token) match(input, SET_SYM,
							FOLLOW_SET_SYM_in_reference_option3728);
					if (state.failed)
						return retval;
					if (state.backtracking == 0) {
						SET_SYM617_tree = (Object) adaptor.create(SET_SYM617);
						adaptor.addChild(root_0, SET_SYM617_tree);
					}
					NULL_SYM618 = (Token) match(input, NULL_SYM,
							FOLLOW_NULL_SYM_in_reference_option3730);
					if (state.failed)
						return retval;
					if (state.backtracking == 0) {
						NULL_SYM618_tree = (Object) adaptor.create(NULL_SYM618);
						adaptor.addChild(root_0, NULL_SYM618_tree);
					}

				}

			}
				break;
			case 4:
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:373:48: ( NO_SYM
			// ACTION )
			{
				root_0 = (Object) adaptor.nil();

				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:373:48: ( NO_SYM
				// ACTION )
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:373:49: NO_SYM
				// ACTION
				{
					NO_SYM619 = (Token) match(input, NO_SYM,
							FOLLOW_NO_SYM_in_reference_option3736);
					if (state.failed)
						return retval;
					if (state.backtracking == 0) {
						NO_SYM619_tree = (Object) adaptor.create(NO_SYM619);
						adaptor.addChild(root_0, NO_SYM619_tree);
					}
					ACTION620 = (Token) match(input, ACTION,
							FOLLOW_ACTION_in_reference_option3738);
					if (state.failed)
						return retval;
					if (state.backtracking == 0) {
						ACTION620_tree = (Object) adaptor.create(ACTION620);
						adaptor.addChild(root_0, ACTION620_tree);
					}

				}

			}
				break;

			}
			retval.stop = input.LT(-1);

			if (state.backtracking == 0) {

				retval.tree = (Object) adaptor.rulePostProcessing(root_0);
				adaptor.setTokenBoundaries(retval.tree, retval.start,
						retval.stop);
			}
		} catch (RecognitionException re) {
			reportError(re);
			recover(input, re);
			retval.tree = (Object) adaptor.errorNode(input, retval.start,
					input.LT(-1), re);

		} finally {
		}
		return retval;
	}

	// $ANTLR end "reference_option"

	public static class table_options_return extends ParserRuleReturnScope {
		Object tree;

		public Object getTree() {
			return tree;
		}
	};

	// $ANTLR start "table_options"
	// C:\\Users\\grand\\Desktop\\another\\MySQL.g:376:1: table_options :
	// table_option ( ( COMMA )? table_option )* ;
	public final MySQLParser.table_options_return table_options()
			throws RecognitionException {
		MySQLParser.table_options_return retval = new MySQLParser.table_options_return();
		retval.start = input.LT(1);

		Object root_0 = null;

		Token COMMA622 = null;
		MySQLParser.table_option_return table_option621 = null;

		MySQLParser.table_option_return table_option623 = null;

		Object COMMA622_tree = null;

		try {
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:376:14: (
			// table_option ( ( COMMA )? table_option )* )
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:377:2: table_option (
			// ( COMMA )? table_option )*
			{
				root_0 = (Object) adaptor.nil();

				pushFollow(FOLLOW_table_option_in_table_options3748);
				table_option621 = table_option();

				state._fsp--;
				if (state.failed)
					return retval;
				if (state.backtracking == 0)
					adaptor.addChild(root_0, table_option621.getTree());
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:377:15: ( ( COMMA
				// )? table_option )*
				loop260: do {
					int alt260 = 2;
					alt260 = dfa260.predict(input);
					switch (alt260) {
					case 1:
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:377:16: (
					// COMMA )? table_option
					{
						// C:\\Users\\grand\\Desktop\\another\\MySQL.g:377:16: (
						// COMMA )?
						int alt259 = 2;
						int LA259_0 = input.LA(1);

						if ((LA259_0 == COMMA)) {
							alt259 = 1;
						}
						switch (alt259) {
						case 1:
						// C:\\Users\\grand\\Desktop\\another\\MySQL.g:377:18:
						// COMMA
						{
							COMMA622 = (Token) match(input, COMMA,
									FOLLOW_COMMA_in_table_options3753);
							if (state.failed)
								return retval;

						}
							break;

						}

						pushFollow(FOLLOW_table_option_in_table_options3759);
						table_option623 = table_option();

						state._fsp--;
						if (state.failed)
							return retval;
						if (state.backtracking == 0)
							adaptor.addChild(root_0, table_option623.getTree());

					}
						break;

					default:
						break loop260;
					}
				} while (true);

			}

			retval.stop = input.LT(-1);

			if (state.backtracking == 0) {

				retval.tree = (Object) adaptor.rulePostProcessing(root_0);
				adaptor.setTokenBoundaries(retval.tree, retval.start,
						retval.stop);
			}
		} catch (RecognitionException re) {
			reportError(re);
			recover(input, re);
			retval.tree = (Object) adaptor.errorNode(input, retval.start,
					input.LT(-1), re);

		} finally {
		}
		return retval;
	}

	// $ANTLR end "table_options"

	public static class table_option_return extends ParserRuleReturnScope {
		Object tree;

		public Object getTree() {
			return tree;
		}
	};

	// $ANTLR start "table_option"
	// C:\\Users\\grand\\Desktop\\another\\MySQL.g:379:1: table_option : ( (
	// ENGINE_SYM ( EQ_SYM )? engine_name ) | ( AUTO_INCREMENT ( EQ_SYM )?
	// INTEGER_NUM ) | ( AVG_ROW_LENGTH ( EQ_SYM )? INTEGER_NUM ) | ( ( DEFAULT
	// )? CHARACTER_SYM SET_SYM ( EQ_SYM )? charset_name ) | ( CHECKSUM_SYM (
	// EQ_SYM )? INTEGER_NUM ) | ( ( DEFAULT )? COLLATE_SYM ( EQ_SYM )?
	// collation_name ) | ( COMMENT_SYM ( EQ_SYM )? TEXT_STRING ) | (
	// CONNECTION_SYM ( EQ_SYM )? TEXT_STRING ) | ( DATA_SYM DIRECTORY_SYM (
	// EQ_SYM )? TEXT_STRING ) | ( DELAY_KEY_WRITE_SYM ( EQ_SYM )? INTEGER_NUM )
	// | ( INDEX_SYM DIRECTORY_SYM ( EQ_SYM )? TEXT_STRING ) | ( INSERT_METHOD (
	// EQ_SYM )? ( NO_SYM | FIRST_SYM | LAST_SYM ) ) | ( KEY_BLOCK_SIZE ( EQ_SYM
	// )? INTEGER_NUM ) | ( MAX_ROWS ( EQ_SYM )? INTEGER_NUM ) | ( MIN_ROWS (
	// EQ_SYM )? INTEGER_NUM ) | ( PACK_KEYS_SYM ( EQ_SYM )? ( INTEGER_NUM |
	// DEFAULT ) ) | ( PASSWORD ( EQ_SYM )? TEXT_STRING ) | ( ROW_FORMAT_SYM (
	// EQ_SYM )? ( DEFAULT | DYNAMIC_SYM | FIXED_SYM | COMPRESSED_SYM |
	// REDUNDANT_SYM | COMPACT_SYM ) ) | ( STATS_AUTO_RECALC ( EQ_SYM )? (
	// DEFAULT | INTEGER_NUM ) ) | ( STATS_PERSISTENT ( EQ_SYM )? ( DEFAULT |
	// INTEGER_NUM ) ) | ( UNION_SYM ( EQ_SYM )? LPAREN table_name ( COMMA
	// table_name )* RPAREN ) );
	public final MySQLParser.table_option_return table_option()
			throws RecognitionException {
		MySQLParser.table_option_return retval = new MySQLParser.table_option_return();
		retval.start = input.LT(1);

		Object root_0 = null;

		Token ENGINE_SYM624 = null;
		Token EQ_SYM625 = null;
		Token AUTO_INCREMENT627 = null;
		Token EQ_SYM628 = null;
		Token INTEGER_NUM629 = null;
		Token AVG_ROW_LENGTH630 = null;
		Token EQ_SYM631 = null;
		Token INTEGER_NUM632 = null;
		Token DEFAULT633 = null;
		Token CHARACTER_SYM634 = null;
		Token SET_SYM635 = null;
		Token EQ_SYM636 = null;
		Token CHECKSUM_SYM638 = null;
		Token EQ_SYM639 = null;
		Token INTEGER_NUM640 = null;
		Token DEFAULT641 = null;
		Token COLLATE_SYM642 = null;
		Token EQ_SYM643 = null;
		Token COMMENT_SYM645 = null;
		Token EQ_SYM646 = null;
		Token TEXT_STRING647 = null;
		Token CONNECTION_SYM648 = null;
		Token EQ_SYM649 = null;
		Token TEXT_STRING650 = null;
		Token DATA_SYM651 = null;
		Token DIRECTORY_SYM652 = null;
		Token EQ_SYM653 = null;
		Token TEXT_STRING654 = null;
		Token DELAY_KEY_WRITE_SYM655 = null;
		Token EQ_SYM656 = null;
		Token INTEGER_NUM657 = null;
		Token INDEX_SYM658 = null;
		Token DIRECTORY_SYM659 = null;
		Token EQ_SYM660 = null;
		Token TEXT_STRING661 = null;
		Token INSERT_METHOD662 = null;
		Token EQ_SYM663 = null;
		Token set664 = null;
		Token KEY_BLOCK_SIZE665 = null;
		Token EQ_SYM666 = null;
		Token INTEGER_NUM667 = null;
		Token MAX_ROWS668 = null;
		Token EQ_SYM669 = null;
		Token INTEGER_NUM670 = null;
		Token MIN_ROWS671 = null;
		Token EQ_SYM672 = null;
		Token INTEGER_NUM673 = null;
		Token PACK_KEYS_SYM674 = null;
		Token EQ_SYM675 = null;
		Token set676 = null;
		Token PASSWORD677 = null;
		Token EQ_SYM678 = null;
		Token TEXT_STRING679 = null;
		Token ROW_FORMAT_SYM680 = null;
		Token EQ_SYM681 = null;
		Token set682 = null;
		Token STATS_AUTO_RECALC683 = null;
		Token EQ_SYM684 = null;
		Token set685 = null;
		Token STATS_PERSISTENT686 = null;
		Token EQ_SYM687 = null;
		Token set688 = null;
		Token UNION_SYM689 = null;
		Token EQ_SYM690 = null;
		Token LPAREN691 = null;
		Token COMMA693 = null;
		Token RPAREN695 = null;
		MySQLParser.engine_name_return engine_name626 = null;

		MySQLParser.charset_name_return charset_name637 = null;

		MySQLParser.collation_name_return collation_name644 = null;

		MySQLParser.table_name_return table_name692 = null;

		MySQLParser.table_name_return table_name694 = null;

		Object ENGINE_SYM624_tree = null;
		Object EQ_SYM625_tree = null;
		Object AUTO_INCREMENT627_tree = null;
		Object EQ_SYM628_tree = null;
		Object INTEGER_NUM629_tree = null;
		Object AVG_ROW_LENGTH630_tree = null;
		Object EQ_SYM631_tree = null;
		Object INTEGER_NUM632_tree = null;
		Object DEFAULT633_tree = null;
		Object CHARACTER_SYM634_tree = null;
		Object SET_SYM635_tree = null;
		Object EQ_SYM636_tree = null;
		Object CHECKSUM_SYM638_tree = null;
		Object EQ_SYM639_tree = null;
		Object INTEGER_NUM640_tree = null;
		Object DEFAULT641_tree = null;
		Object COLLATE_SYM642_tree = null;
		Object EQ_SYM643_tree = null;
		Object COMMENT_SYM645_tree = null;
		Object EQ_SYM646_tree = null;
		Object TEXT_STRING647_tree = null;
		Object CONNECTION_SYM648_tree = null;
		Object EQ_SYM649_tree = null;
		Object TEXT_STRING650_tree = null;
		Object DATA_SYM651_tree = null;
		Object DIRECTORY_SYM652_tree = null;
		Object EQ_SYM653_tree = null;
		Object TEXT_STRING654_tree = null;
		Object DELAY_KEY_WRITE_SYM655_tree = null;
		Object EQ_SYM656_tree = null;
		Object INTEGER_NUM657_tree = null;
		Object INDEX_SYM658_tree = null;
		Object DIRECTORY_SYM659_tree = null;
		Object EQ_SYM660_tree = null;
		Object TEXT_STRING661_tree = null;
		Object INSERT_METHOD662_tree = null;
		Object EQ_SYM663_tree = null;
		Object set664_tree = null;
		Object KEY_BLOCK_SIZE665_tree = null;
		Object EQ_SYM666_tree = null;
		Object INTEGER_NUM667_tree = null;
		Object MAX_ROWS668_tree = null;
		Object EQ_SYM669_tree = null;
		Object INTEGER_NUM670_tree = null;
		Object MIN_ROWS671_tree = null;
		Object EQ_SYM672_tree = null;
		Object INTEGER_NUM673_tree = null;
		Object PACK_KEYS_SYM674_tree = null;
		Object EQ_SYM675_tree = null;
		Object set676_tree = null;
		Object PASSWORD677_tree = null;
		Object EQ_SYM678_tree = null;
		Object TEXT_STRING679_tree = null;
		Object ROW_FORMAT_SYM680_tree = null;
		Object EQ_SYM681_tree = null;
		Object set682_tree = null;
		Object STATS_AUTO_RECALC683_tree = null;
		Object EQ_SYM684_tree = null;
		Object set685_tree = null;
		Object STATS_PERSISTENT686_tree = null;
		Object EQ_SYM687_tree = null;
		Object set688_tree = null;
		Object UNION_SYM689_tree = null;
		Object EQ_SYM690_tree = null;
		Object LPAREN691_tree = null;
		Object COMMA693_tree = null;
		Object RPAREN695_tree = null;

		try {
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:379:13: ( (
			// ENGINE_SYM ( EQ_SYM )? engine_name ) | ( AUTO_INCREMENT ( EQ_SYM
			// )? INTEGER_NUM ) | ( AVG_ROW_LENGTH ( EQ_SYM )? INTEGER_NUM ) | (
			// ( DEFAULT )? CHARACTER_SYM SET_SYM ( EQ_SYM )? charset_name ) | (
			// CHECKSUM_SYM ( EQ_SYM )? INTEGER_NUM ) | ( ( DEFAULT )?
			// COLLATE_SYM ( EQ_SYM )? collation_name ) | ( COMMENT_SYM ( EQ_SYM
			// )? TEXT_STRING ) | ( CONNECTION_SYM ( EQ_SYM )? TEXT_STRING ) | (
			// DATA_SYM DIRECTORY_SYM ( EQ_SYM )? TEXT_STRING ) | (
			// DELAY_KEY_WRITE_SYM ( EQ_SYM )? INTEGER_NUM ) | ( INDEX_SYM
			// DIRECTORY_SYM ( EQ_SYM )? TEXT_STRING ) | ( INSERT_METHOD (
			// EQ_SYM )? ( NO_SYM | FIRST_SYM | LAST_SYM ) ) | ( KEY_BLOCK_SIZE
			// ( EQ_SYM )? INTEGER_NUM ) | ( MAX_ROWS ( EQ_SYM )? INTEGER_NUM )
			// | ( MIN_ROWS ( EQ_SYM )? INTEGER_NUM ) | ( PACK_KEYS_SYM ( EQ_SYM
			// )? ( INTEGER_NUM | DEFAULT ) ) | ( PASSWORD ( EQ_SYM )?
			// TEXT_STRING ) | ( ROW_FORMAT_SYM ( EQ_SYM )? ( DEFAULT |
			// DYNAMIC_SYM | FIXED_SYM | COMPRESSED_SYM | REDUNDANT_SYM |
			// COMPACT_SYM ) ) | ( STATS_AUTO_RECALC ( EQ_SYM )? ( DEFAULT |
			// INTEGER_NUM ) ) | ( STATS_PERSISTENT ( EQ_SYM )? ( DEFAULT |
			// INTEGER_NUM ) ) | ( UNION_SYM ( EQ_SYM )? LPAREN table_name (
			// COMMA table_name )* RPAREN ) )
			int alt285 = 21;
			alt285 = dfa285.predict(input);
			switch (alt285) {
			case 1:
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:380:4: ( ENGINE_SYM (
			// EQ_SYM )? engine_name )
			{
				root_0 = (Object) adaptor.nil();

				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:380:4: (
				// ENGINE_SYM ( EQ_SYM )? engine_name )
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:380:7: ENGINE_SYM
				// ( EQ_SYM )? engine_name
				{
					ENGINE_SYM624 = (Token) match(input, ENGINE_SYM,
							FOLLOW_ENGINE_SYM_in_table_option3774);
					if (state.failed)
						return retval;
					if (state.backtracking == 0) {
						ENGINE_SYM624_tree = (Object) adaptor
								.create(ENGINE_SYM624);
						adaptor.addChild(root_0, ENGINE_SYM624_tree);
					}
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:380:18: (
					// EQ_SYM )?
					int alt261 = 2;
					int LA261_0 = input.LA(1);

					if ((LA261_0 == EQ_SYM)) {
						alt261 = 1;
					}
					switch (alt261) {
					case 1:
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:380:19:
					// EQ_SYM
					{
						EQ_SYM625 = (Token) match(input, EQ_SYM,
								FOLLOW_EQ_SYM_in_table_option3777);
						if (state.failed)
							return retval;
						if (state.backtracking == 0) {
							EQ_SYM625_tree = (Object) adaptor.create(EQ_SYM625);
							adaptor.addChild(root_0, EQ_SYM625_tree);
						}

					}
						break;

					}

					pushFollow(FOLLOW_engine_name_in_table_option3781);
					engine_name626 = engine_name();

					state._fsp--;
					if (state.failed)
						return retval;
					if (state.backtracking == 0)
						adaptor.addChild(root_0, engine_name626.getTree());

				}

			}
				break;
			case 2:
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:381:4: (
			// AUTO_INCREMENT ( EQ_SYM )? INTEGER_NUM )
			{
				root_0 = (Object) adaptor.nil();

				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:381:4: (
				// AUTO_INCREMENT ( EQ_SYM )? INTEGER_NUM )
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:381:7:
				// AUTO_INCREMENT ( EQ_SYM )? INTEGER_NUM
				{
					AUTO_INCREMENT627 = (Token) match(input, AUTO_INCREMENT,
							FOLLOW_AUTO_INCREMENT_in_table_option3792);
					if (state.failed)
						return retval;
					if (state.backtracking == 0) {
						AUTO_INCREMENT627_tree = (Object) adaptor
								.create(AUTO_INCREMENT627);
						adaptor.addChild(root_0, AUTO_INCREMENT627_tree);
					}
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:381:22: (
					// EQ_SYM )?
					int alt262 = 2;
					int LA262_0 = input.LA(1);

					if ((LA262_0 == EQ_SYM)) {
						alt262 = 1;
					}
					switch (alt262) {
					case 1:
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:381:23:
					// EQ_SYM
					{
						EQ_SYM628 = (Token) match(input, EQ_SYM,
								FOLLOW_EQ_SYM_in_table_option3795);
						if (state.failed)
							return retval;
						if (state.backtracking == 0) {
							EQ_SYM628_tree = (Object) adaptor.create(EQ_SYM628);
							adaptor.addChild(root_0, EQ_SYM628_tree);
						}

					}
						break;

					}

					INTEGER_NUM629 = (Token) match(input, INTEGER_NUM,
							FOLLOW_INTEGER_NUM_in_table_option3799);
					if (state.failed)
						return retval;
					if (state.backtracking == 0) {
						INTEGER_NUM629_tree = (Object) adaptor
								.create(INTEGER_NUM629);
						adaptor.addChild(root_0, INTEGER_NUM629_tree);
					}

				}

			}
				break;
			case 3:
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:382:4: (
			// AVG_ROW_LENGTH ( EQ_SYM )? INTEGER_NUM )
			{
				root_0 = (Object) adaptor.nil();

				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:382:4: (
				// AVG_ROW_LENGTH ( EQ_SYM )? INTEGER_NUM )
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:382:7:
				// AVG_ROW_LENGTH ( EQ_SYM )? INTEGER_NUM
				{
					AVG_ROW_LENGTH630 = (Token) match(input, AVG_ROW_LENGTH,
							FOLLOW_AVG_ROW_LENGTH_in_table_option3810);
					if (state.failed)
						return retval;
					if (state.backtracking == 0) {
						AVG_ROW_LENGTH630_tree = (Object) adaptor
								.create(AVG_ROW_LENGTH630);
						adaptor.addChild(root_0, AVG_ROW_LENGTH630_tree);
					}
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:382:22: (
					// EQ_SYM )?
					int alt263 = 2;
					int LA263_0 = input.LA(1);

					if ((LA263_0 == EQ_SYM)) {
						alt263 = 1;
					}
					switch (alt263) {
					case 1:
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:382:23:
					// EQ_SYM
					{
						EQ_SYM631 = (Token) match(input, EQ_SYM,
								FOLLOW_EQ_SYM_in_table_option3813);
						if (state.failed)
							return retval;
						if (state.backtracking == 0) {
							EQ_SYM631_tree = (Object) adaptor.create(EQ_SYM631);
							adaptor.addChild(root_0, EQ_SYM631_tree);
						}

					}
						break;

					}

					INTEGER_NUM632 = (Token) match(input, INTEGER_NUM,
							FOLLOW_INTEGER_NUM_in_table_option3817);
					if (state.failed)
						return retval;
					if (state.backtracking == 0) {
						INTEGER_NUM632_tree = (Object) adaptor
								.create(INTEGER_NUM632);
						adaptor.addChild(root_0, INTEGER_NUM632_tree);
					}

				}

			}
				break;
			case 4:
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:383:4: ( ( DEFAULT )?
			// CHARACTER_SYM SET_SYM ( EQ_SYM )? charset_name )
			{
				root_0 = (Object) adaptor.nil();

				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:383:4: ( (
				// DEFAULT )? CHARACTER_SYM SET_SYM ( EQ_SYM )? charset_name )
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:383:7: ( DEFAULT
				// )? CHARACTER_SYM SET_SYM ( EQ_SYM )? charset_name
				{
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:383:7: (
					// DEFAULT )?
					int alt264 = 2;
					int LA264_0 = input.LA(1);

					if ((LA264_0 == DEFAULT)) {
						alt264 = 1;
					}
					switch (alt264) {
					case 1:
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:383:8:
					// DEFAULT
					{
						DEFAULT633 = (Token) match(input, DEFAULT,
								FOLLOW_DEFAULT_in_table_option3829);
						if (state.failed)
							return retval;
						if (state.backtracking == 0) {
							DEFAULT633_tree = (Object) adaptor
									.create(DEFAULT633);
							adaptor.addChild(root_0, DEFAULT633_tree);
						}

					}
						break;

					}

					CHARACTER_SYM634 = (Token) match(input, CHARACTER_SYM,
							FOLLOW_CHARACTER_SYM_in_table_option3833);
					if (state.failed)
						return retval;
					if (state.backtracking == 0) {
						CHARACTER_SYM634_tree = (Object) adaptor
								.create(CHARACTER_SYM634);
						adaptor.addChild(root_0, CHARACTER_SYM634_tree);
					}
					SET_SYM635 = (Token) match(input, SET_SYM,
							FOLLOW_SET_SYM_in_table_option3835);
					if (state.failed)
						return retval;
					if (state.backtracking == 0) {
						SET_SYM635_tree = (Object) adaptor.create(SET_SYM635);
						adaptor.addChild(root_0, SET_SYM635_tree);
					}
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:383:40: (
					// EQ_SYM )?
					int alt265 = 2;
					int LA265_0 = input.LA(1);

					if ((LA265_0 == EQ_SYM)) {
						alt265 = 1;
					}
					switch (alt265) {
					case 1:
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:383:41:
					// EQ_SYM
					{
						EQ_SYM636 = (Token) match(input, EQ_SYM,
								FOLLOW_EQ_SYM_in_table_option3838);
						if (state.failed)
							return retval;
						if (state.backtracking == 0) {
							EQ_SYM636_tree = (Object) adaptor.create(EQ_SYM636);
							adaptor.addChild(root_0, EQ_SYM636_tree);
						}

					}
						break;

					}

					pushFollow(FOLLOW_charset_name_in_table_option3842);
					charset_name637 = charset_name();

					state._fsp--;
					if (state.failed)
						return retval;
					if (state.backtracking == 0)
						adaptor.addChild(root_0, charset_name637.getTree());

				}

			}
				break;
			case 5:
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:384:4: ( CHECKSUM_SYM
			// ( EQ_SYM )? INTEGER_NUM )
			{
				root_0 = (Object) adaptor.nil();

				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:384:4: (
				// CHECKSUM_SYM ( EQ_SYM )? INTEGER_NUM )
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:384:7:
				// CHECKSUM_SYM ( EQ_SYM )? INTEGER_NUM
				{
					CHECKSUM_SYM638 = (Token) match(input, CHECKSUM_SYM,
							FOLLOW_CHECKSUM_SYM_in_table_option3853);
					if (state.failed)
						return retval;
					if (state.backtracking == 0) {
						CHECKSUM_SYM638_tree = (Object) adaptor
								.create(CHECKSUM_SYM638);
						adaptor.addChild(root_0, CHECKSUM_SYM638_tree);
					}
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:384:20: (
					// EQ_SYM )?
					int alt266 = 2;
					int LA266_0 = input.LA(1);

					if ((LA266_0 == EQ_SYM)) {
						alt266 = 1;
					}
					switch (alt266) {
					case 1:
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:384:21:
					// EQ_SYM
					{
						EQ_SYM639 = (Token) match(input, EQ_SYM,
								FOLLOW_EQ_SYM_in_table_option3856);
						if (state.failed)
							return retval;
						if (state.backtracking == 0) {
							EQ_SYM639_tree = (Object) adaptor.create(EQ_SYM639);
							adaptor.addChild(root_0, EQ_SYM639_tree);
						}

					}
						break;

					}

					INTEGER_NUM640 = (Token) match(input, INTEGER_NUM,
							FOLLOW_INTEGER_NUM_in_table_option3860);
					if (state.failed)
						return retval;
					if (state.backtracking == 0) {
						INTEGER_NUM640_tree = (Object) adaptor
								.create(INTEGER_NUM640);
						adaptor.addChild(root_0, INTEGER_NUM640_tree);
					}

				}

			}
				break;
			case 6:
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:385:4: ( ( DEFAULT )?
			// COLLATE_SYM ( EQ_SYM )? collation_name )
			{
				root_0 = (Object) adaptor.nil();

				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:385:4: ( (
				// DEFAULT )? COLLATE_SYM ( EQ_SYM )? collation_name )
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:385:7: ( DEFAULT
				// )? COLLATE_SYM ( EQ_SYM )? collation_name
				{
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:385:7: (
					// DEFAULT )?
					int alt267 = 2;
					int LA267_0 = input.LA(1);

					if ((LA267_0 == DEFAULT)) {
						alt267 = 1;
					}
					switch (alt267) {
					case 1:
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:385:8:
					// DEFAULT
					{
						DEFAULT641 = (Token) match(input, DEFAULT,
								FOLLOW_DEFAULT_in_table_option3872);
						if (state.failed)
							return retval;
						if (state.backtracking == 0) {
							DEFAULT641_tree = (Object) adaptor
									.create(DEFAULT641);
							adaptor.addChild(root_0, DEFAULT641_tree);
						}

					}
						break;

					}

					COLLATE_SYM642 = (Token) match(input, COLLATE_SYM,
							FOLLOW_COLLATE_SYM_in_table_option3876);
					if (state.failed)
						return retval;
					if (state.backtracking == 0) {
						COLLATE_SYM642_tree = (Object) adaptor
								.create(COLLATE_SYM642);
						adaptor.addChild(root_0, COLLATE_SYM642_tree);
					}
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:385:30: (
					// EQ_SYM )?
					int alt268 = 2;
					int LA268_0 = input.LA(1);

					if ((LA268_0 == EQ_SYM)) {
						alt268 = 1;
					}
					switch (alt268) {
					case 1:
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:385:31:
					// EQ_SYM
					{
						EQ_SYM643 = (Token) match(input, EQ_SYM,
								FOLLOW_EQ_SYM_in_table_option3879);
						if (state.failed)
							return retval;
						if (state.backtracking == 0) {
							EQ_SYM643_tree = (Object) adaptor.create(EQ_SYM643);
							adaptor.addChild(root_0, EQ_SYM643_tree);
						}

					}
						break;

					}

					pushFollow(FOLLOW_collation_name_in_table_option3883);
					collation_name644 = collation_name();

					state._fsp--;
					if (state.failed)
						return retval;
					if (state.backtracking == 0)
						adaptor.addChild(root_0, collation_name644.getTree());

				}

			}
				break;
			case 7:
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:386:4: ( COMMENT_SYM
			// ( EQ_SYM )? TEXT_STRING )
			{
				root_0 = (Object) adaptor.nil();

				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:386:4: (
				// COMMENT_SYM ( EQ_SYM )? TEXT_STRING )
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:386:7:
				// COMMENT_SYM ( EQ_SYM )? TEXT_STRING
				{
					COMMENT_SYM645 = (Token) match(input, COMMENT_SYM,
							FOLLOW_COMMENT_SYM_in_table_option3894);
					if (state.failed)
						return retval;
					if (state.backtracking == 0) {
						COMMENT_SYM645_tree = (Object) adaptor
								.create(COMMENT_SYM645);
						adaptor.addChild(root_0, COMMENT_SYM645_tree);
					}
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:386:19: (
					// EQ_SYM )?
					int alt269 = 2;
					int LA269_0 = input.LA(1);

					if ((LA269_0 == EQ_SYM)) {
						alt269 = 1;
					}
					switch (alt269) {
					case 1:
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:386:20:
					// EQ_SYM
					{
						EQ_SYM646 = (Token) match(input, EQ_SYM,
								FOLLOW_EQ_SYM_in_table_option3897);
						if (state.failed)
							return retval;
						if (state.backtracking == 0) {
							EQ_SYM646_tree = (Object) adaptor.create(EQ_SYM646);
							adaptor.addChild(root_0, EQ_SYM646_tree);
						}

					}
						break;

					}

					TEXT_STRING647 = (Token) match(input, TEXT_STRING,
							FOLLOW_TEXT_STRING_in_table_option3901);
					if (state.failed)
						return retval;
					if (state.backtracking == 0) {
						TEXT_STRING647_tree = (Object) adaptor
								.create(TEXT_STRING647);
						adaptor.addChild(root_0, TEXT_STRING647_tree);
					}

				}

			}
				break;
			case 8:
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:387:4: (
			// CONNECTION_SYM ( EQ_SYM )? TEXT_STRING )
			{
				root_0 = (Object) adaptor.nil();

				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:387:4: (
				// CONNECTION_SYM ( EQ_SYM )? TEXT_STRING )
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:387:7:
				// CONNECTION_SYM ( EQ_SYM )? TEXT_STRING
				{
					CONNECTION_SYM648 = (Token) match(input, CONNECTION_SYM,
							FOLLOW_CONNECTION_SYM_in_table_option3912);
					if (state.failed)
						return retval;
					if (state.backtracking == 0) {
						CONNECTION_SYM648_tree = (Object) adaptor
								.create(CONNECTION_SYM648);
						adaptor.addChild(root_0, CONNECTION_SYM648_tree);
					}
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:387:22: (
					// EQ_SYM )?
					int alt270 = 2;
					int LA270_0 = input.LA(1);

					if ((LA270_0 == EQ_SYM)) {
						alt270 = 1;
					}
					switch (alt270) {
					case 1:
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:387:23:
					// EQ_SYM
					{
						EQ_SYM649 = (Token) match(input, EQ_SYM,
								FOLLOW_EQ_SYM_in_table_option3915);
						if (state.failed)
							return retval;
						if (state.backtracking == 0) {
							EQ_SYM649_tree = (Object) adaptor.create(EQ_SYM649);
							adaptor.addChild(root_0, EQ_SYM649_tree);
						}

					}
						break;

					}

					TEXT_STRING650 = (Token) match(input, TEXT_STRING,
							FOLLOW_TEXT_STRING_in_table_option3919);
					if (state.failed)
						return retval;
					if (state.backtracking == 0) {
						TEXT_STRING650_tree = (Object) adaptor
								.create(TEXT_STRING650);
						adaptor.addChild(root_0, TEXT_STRING650_tree);
					}

				}

			}
				break;
			case 9:
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:388:4: ( DATA_SYM
			// DIRECTORY_SYM ( EQ_SYM )? TEXT_STRING )
			{
				root_0 = (Object) adaptor.nil();

				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:388:4: ( DATA_SYM
				// DIRECTORY_SYM ( EQ_SYM )? TEXT_STRING )
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:388:7: DATA_SYM
				// DIRECTORY_SYM ( EQ_SYM )? TEXT_STRING
				{
					DATA_SYM651 = (Token) match(input, DATA_SYM,
							FOLLOW_DATA_SYM_in_table_option3930);
					if (state.failed)
						return retval;
					if (state.backtracking == 0) {
						DATA_SYM651_tree = (Object) adaptor.create(DATA_SYM651);
						adaptor.addChild(root_0, DATA_SYM651_tree);
					}
					DIRECTORY_SYM652 = (Token) match(input, DIRECTORY_SYM,
							FOLLOW_DIRECTORY_SYM_in_table_option3932);
					if (state.failed)
						return retval;
					if (state.backtracking == 0) {
						DIRECTORY_SYM652_tree = (Object) adaptor
								.create(DIRECTORY_SYM652);
						adaptor.addChild(root_0, DIRECTORY_SYM652_tree);
					}
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:388:30: (
					// EQ_SYM )?
					int alt271 = 2;
					int LA271_0 = input.LA(1);

					if ((LA271_0 == EQ_SYM)) {
						alt271 = 1;
					}
					switch (alt271) {
					case 1:
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:388:31:
					// EQ_SYM
					{
						EQ_SYM653 = (Token) match(input, EQ_SYM,
								FOLLOW_EQ_SYM_in_table_option3935);
						if (state.failed)
							return retval;
						if (state.backtracking == 0) {
							EQ_SYM653_tree = (Object) adaptor.create(EQ_SYM653);
							adaptor.addChild(root_0, EQ_SYM653_tree);
						}

					}
						break;

					}

					TEXT_STRING654 = (Token) match(input, TEXT_STRING,
							FOLLOW_TEXT_STRING_in_table_option3939);
					if (state.failed)
						return retval;
					if (state.backtracking == 0) {
						TEXT_STRING654_tree = (Object) adaptor
								.create(TEXT_STRING654);
						adaptor.addChild(root_0, TEXT_STRING654_tree);
					}

				}

			}
				break;
			case 10:
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:389:4: (
			// DELAY_KEY_WRITE_SYM ( EQ_SYM )? INTEGER_NUM )
			{
				root_0 = (Object) adaptor.nil();

				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:389:4: (
				// DELAY_KEY_WRITE_SYM ( EQ_SYM )? INTEGER_NUM )
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:389:7:
				// DELAY_KEY_WRITE_SYM ( EQ_SYM )? INTEGER_NUM
				{
					DELAY_KEY_WRITE_SYM655 = (Token) match(input,
							DELAY_KEY_WRITE_SYM,
							FOLLOW_DELAY_KEY_WRITE_SYM_in_table_option3950);
					if (state.failed)
						return retval;
					if (state.backtracking == 0) {
						DELAY_KEY_WRITE_SYM655_tree = (Object) adaptor
								.create(DELAY_KEY_WRITE_SYM655);
						adaptor.addChild(root_0, DELAY_KEY_WRITE_SYM655_tree);
					}
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:389:27: (
					// EQ_SYM )?
					int alt272 = 2;
					int LA272_0 = input.LA(1);

					if ((LA272_0 == EQ_SYM)) {
						alt272 = 1;
					}
					switch (alt272) {
					case 1:
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:389:28:
					// EQ_SYM
					{
						EQ_SYM656 = (Token) match(input, EQ_SYM,
								FOLLOW_EQ_SYM_in_table_option3953);
						if (state.failed)
							return retval;
						if (state.backtracking == 0) {
							EQ_SYM656_tree = (Object) adaptor.create(EQ_SYM656);
							adaptor.addChild(root_0, EQ_SYM656_tree);
						}

					}
						break;

					}

					INTEGER_NUM657 = (Token) match(input, INTEGER_NUM,
							FOLLOW_INTEGER_NUM_in_table_option3957);
					if (state.failed)
						return retval;
					if (state.backtracking == 0) {
						INTEGER_NUM657_tree = (Object) adaptor
								.create(INTEGER_NUM657);
						adaptor.addChild(root_0, INTEGER_NUM657_tree);
					}

				}

			}
				break;
			case 11:
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:390:4: ( INDEX_SYM
			// DIRECTORY_SYM ( EQ_SYM )? TEXT_STRING )
			{
				root_0 = (Object) adaptor.nil();

				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:390:4: (
				// INDEX_SYM DIRECTORY_SYM ( EQ_SYM )? TEXT_STRING )
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:390:7: INDEX_SYM
				// DIRECTORY_SYM ( EQ_SYM )? TEXT_STRING
				{
					INDEX_SYM658 = (Token) match(input, INDEX_SYM,
							FOLLOW_INDEX_SYM_in_table_option3968);
					if (state.failed)
						return retval;
					if (state.backtracking == 0) {
						INDEX_SYM658_tree = (Object) adaptor
								.create(INDEX_SYM658);
						adaptor.addChild(root_0, INDEX_SYM658_tree);
					}
					DIRECTORY_SYM659 = (Token) match(input, DIRECTORY_SYM,
							FOLLOW_DIRECTORY_SYM_in_table_option3970);
					if (state.failed)
						return retval;
					if (state.backtracking == 0) {
						DIRECTORY_SYM659_tree = (Object) adaptor
								.create(DIRECTORY_SYM659);
						adaptor.addChild(root_0, DIRECTORY_SYM659_tree);
					}
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:390:31: (
					// EQ_SYM )?
					int alt273 = 2;
					int LA273_0 = input.LA(1);

					if ((LA273_0 == EQ_SYM)) {
						alt273 = 1;
					}
					switch (alt273) {
					case 1:
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:390:32:
					// EQ_SYM
					{
						EQ_SYM660 = (Token) match(input, EQ_SYM,
								FOLLOW_EQ_SYM_in_table_option3973);
						if (state.failed)
							return retval;
						if (state.backtracking == 0) {
							EQ_SYM660_tree = (Object) adaptor.create(EQ_SYM660);
							adaptor.addChild(root_0, EQ_SYM660_tree);
						}

					}
						break;

					}

					TEXT_STRING661 = (Token) match(input, TEXT_STRING,
							FOLLOW_TEXT_STRING_in_table_option3977);
					if (state.failed)
						return retval;
					if (state.backtracking == 0) {
						TEXT_STRING661_tree = (Object) adaptor
								.create(TEXT_STRING661);
						adaptor.addChild(root_0, TEXT_STRING661_tree);
					}

				}

			}
				break;
			case 12:
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:391:4: (
			// INSERT_METHOD ( EQ_SYM )? ( NO_SYM | FIRST_SYM | LAST_SYM ) )
			{
				root_0 = (Object) adaptor.nil();

				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:391:4: (
				// INSERT_METHOD ( EQ_SYM )? ( NO_SYM | FIRST_SYM | LAST_SYM ) )
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:391:7:
				// INSERT_METHOD ( EQ_SYM )? ( NO_SYM | FIRST_SYM | LAST_SYM )
				{
					INSERT_METHOD662 = (Token) match(input, INSERT_METHOD,
							FOLLOW_INSERT_METHOD_in_table_option3988);
					if (state.failed)
						return retval;
					if (state.backtracking == 0) {
						INSERT_METHOD662_tree = (Object) adaptor
								.create(INSERT_METHOD662);
						adaptor.addChild(root_0, INSERT_METHOD662_tree);
					}
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:391:21: (
					// EQ_SYM )?
					int alt274 = 2;
					int LA274_0 = input.LA(1);

					if ((LA274_0 == EQ_SYM)) {
						alt274 = 1;
					}
					switch (alt274) {
					case 1:
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:391:22:
					// EQ_SYM
					{
						EQ_SYM663 = (Token) match(input, EQ_SYM,
								FOLLOW_EQ_SYM_in_table_option3991);
						if (state.failed)
							return retval;
						if (state.backtracking == 0) {
							EQ_SYM663_tree = (Object) adaptor.create(EQ_SYM663);
							adaptor.addChild(root_0, EQ_SYM663_tree);
						}

					}
						break;

					}

					set664 = (Token) input.LT(1);
					if (input.LA(1) == NO_SYM
							|| (input.LA(1) >= FIRST_SYM && input.LA(1) <= LAST_SYM)) {
						input.consume();
						if (state.backtracking == 0)
							adaptor.addChild(root_0,
									(Object) adaptor.create(set664));
						state.errorRecovery = false;
						state.failed = false;
					} else {
						if (state.backtracking > 0) {
							state.failed = true;
							return retval;
						}
						MismatchedSetException mse = new MismatchedSetException(
								null, input);
						throw mse;
					}

				}

			}
				break;
			case 13:
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:392:4: (
			// KEY_BLOCK_SIZE ( EQ_SYM )? INTEGER_NUM )
			{
				root_0 = (Object) adaptor.nil();

				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:392:4: (
				// KEY_BLOCK_SIZE ( EQ_SYM )? INTEGER_NUM )
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:392:7:
				// KEY_BLOCK_SIZE ( EQ_SYM )? INTEGER_NUM
				{
					KEY_BLOCK_SIZE665 = (Token) match(input, KEY_BLOCK_SIZE,
							FOLLOW_KEY_BLOCK_SIZE_in_table_option4018);
					if (state.failed)
						return retval;
					if (state.backtracking == 0) {
						KEY_BLOCK_SIZE665_tree = (Object) adaptor
								.create(KEY_BLOCK_SIZE665);
						adaptor.addChild(root_0, KEY_BLOCK_SIZE665_tree);
					}
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:392:22: (
					// EQ_SYM )?
					int alt275 = 2;
					int LA275_0 = input.LA(1);

					if ((LA275_0 == EQ_SYM)) {
						alt275 = 1;
					}
					switch (alt275) {
					case 1:
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:392:23:
					// EQ_SYM
					{
						EQ_SYM666 = (Token) match(input, EQ_SYM,
								FOLLOW_EQ_SYM_in_table_option4021);
						if (state.failed)
							return retval;
						if (state.backtracking == 0) {
							EQ_SYM666_tree = (Object) adaptor.create(EQ_SYM666);
							adaptor.addChild(root_0, EQ_SYM666_tree);
						}

					}
						break;

					}

					INTEGER_NUM667 = (Token) match(input, INTEGER_NUM,
							FOLLOW_INTEGER_NUM_in_table_option4025);
					if (state.failed)
						return retval;
					if (state.backtracking == 0) {
						INTEGER_NUM667_tree = (Object) adaptor
								.create(INTEGER_NUM667);
						adaptor.addChild(root_0, INTEGER_NUM667_tree);
					}

				}

			}
				break;
			case 14:
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:393:4: ( MAX_ROWS (
			// EQ_SYM )? INTEGER_NUM )
			{
				root_0 = (Object) adaptor.nil();

				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:393:4: ( MAX_ROWS
				// ( EQ_SYM )? INTEGER_NUM )
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:393:7: MAX_ROWS (
				// EQ_SYM )? INTEGER_NUM
				{
					MAX_ROWS668 = (Token) match(input, MAX_ROWS,
							FOLLOW_MAX_ROWS_in_table_option4036);
					if (state.failed)
						return retval;
					if (state.backtracking == 0) {
						MAX_ROWS668_tree = (Object) adaptor.create(MAX_ROWS668);
						adaptor.addChild(root_0, MAX_ROWS668_tree);
					}
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:393:16: (
					// EQ_SYM )?
					int alt276 = 2;
					int LA276_0 = input.LA(1);

					if ((LA276_0 == EQ_SYM)) {
						alt276 = 1;
					}
					switch (alt276) {
					case 1:
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:393:17:
					// EQ_SYM
					{
						EQ_SYM669 = (Token) match(input, EQ_SYM,
								FOLLOW_EQ_SYM_in_table_option4039);
						if (state.failed)
							return retval;
						if (state.backtracking == 0) {
							EQ_SYM669_tree = (Object) adaptor.create(EQ_SYM669);
							adaptor.addChild(root_0, EQ_SYM669_tree);
						}

					}
						break;

					}

					INTEGER_NUM670 = (Token) match(input, INTEGER_NUM,
							FOLLOW_INTEGER_NUM_in_table_option4043);
					if (state.failed)
						return retval;
					if (state.backtracking == 0) {
						INTEGER_NUM670_tree = (Object) adaptor
								.create(INTEGER_NUM670);
						adaptor.addChild(root_0, INTEGER_NUM670_tree);
					}

				}

			}
				break;
			case 15:
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:394:4: ( MIN_ROWS (
			// EQ_SYM )? INTEGER_NUM )
			{
				root_0 = (Object) adaptor.nil();

				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:394:4: ( MIN_ROWS
				// ( EQ_SYM )? INTEGER_NUM )
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:394:7: MIN_ROWS (
				// EQ_SYM )? INTEGER_NUM
				{
					MIN_ROWS671 = (Token) match(input, MIN_ROWS,
							FOLLOW_MIN_ROWS_in_table_option4054);
					if (state.failed)
						return retval;
					if (state.backtracking == 0) {
						MIN_ROWS671_tree = (Object) adaptor.create(MIN_ROWS671);
						adaptor.addChild(root_0, MIN_ROWS671_tree);
					}
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:394:16: (
					// EQ_SYM )?
					int alt277 = 2;
					int LA277_0 = input.LA(1);

					if ((LA277_0 == EQ_SYM)) {
						alt277 = 1;
					}
					switch (alt277) {
					case 1:
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:394:17:
					// EQ_SYM
					{
						EQ_SYM672 = (Token) match(input, EQ_SYM,
								FOLLOW_EQ_SYM_in_table_option4057);
						if (state.failed)
							return retval;
						if (state.backtracking == 0) {
							EQ_SYM672_tree = (Object) adaptor.create(EQ_SYM672);
							adaptor.addChild(root_0, EQ_SYM672_tree);
						}

					}
						break;

					}

					INTEGER_NUM673 = (Token) match(input, INTEGER_NUM,
							FOLLOW_INTEGER_NUM_in_table_option4061);
					if (state.failed)
						return retval;
					if (state.backtracking == 0) {
						INTEGER_NUM673_tree = (Object) adaptor
								.create(INTEGER_NUM673);
						adaptor.addChild(root_0, INTEGER_NUM673_tree);
					}

				}

			}
				break;
			case 16:
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:395:4: (
			// PACK_KEYS_SYM ( EQ_SYM )? ( INTEGER_NUM | DEFAULT ) )
			{
				root_0 = (Object) adaptor.nil();

				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:395:4: (
				// PACK_KEYS_SYM ( EQ_SYM )? ( INTEGER_NUM | DEFAULT ) )
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:395:7:
				// PACK_KEYS_SYM ( EQ_SYM )? ( INTEGER_NUM | DEFAULT )
				{
					PACK_KEYS_SYM674 = (Token) match(input, PACK_KEYS_SYM,
							FOLLOW_PACK_KEYS_SYM_in_table_option4072);
					if (state.failed)
						return retval;
					if (state.backtracking == 0) {
						PACK_KEYS_SYM674_tree = (Object) adaptor
								.create(PACK_KEYS_SYM674);
						adaptor.addChild(root_0, PACK_KEYS_SYM674_tree);
					}
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:395:21: (
					// EQ_SYM )?
					int alt278 = 2;
					int LA278_0 = input.LA(1);

					if ((LA278_0 == EQ_SYM)) {
						alt278 = 1;
					}
					switch (alt278) {
					case 1:
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:395:22:
					// EQ_SYM
					{
						EQ_SYM675 = (Token) match(input, EQ_SYM,
								FOLLOW_EQ_SYM_in_table_option4075);
						if (state.failed)
							return retval;
						if (state.backtracking == 0) {
							EQ_SYM675_tree = (Object) adaptor.create(EQ_SYM675);
							adaptor.addChild(root_0, EQ_SYM675_tree);
						}

					}
						break;

					}

					set676 = (Token) input.LT(1);
					if (input.LA(1) == INTEGER_NUM || input.LA(1) == DEFAULT) {
						input.consume();
						if (state.backtracking == 0)
							adaptor.addChild(root_0,
									(Object) adaptor.create(set676));
						state.errorRecovery = false;
						state.failed = false;
					} else {
						if (state.backtracking > 0) {
							state.failed = true;
							return retval;
						}
						MismatchedSetException mse = new MismatchedSetException(
								null, input);
						throw mse;
					}

				}

			}
				break;
			case 17:
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:396:4: ( PASSWORD (
			// EQ_SYM )? TEXT_STRING )
			{
				root_0 = (Object) adaptor.nil();

				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:396:4: ( PASSWORD
				// ( EQ_SYM )? TEXT_STRING )
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:396:7: PASSWORD (
				// EQ_SYM )? TEXT_STRING
				{
					PASSWORD677 = (Token) match(input, PASSWORD,
							FOLLOW_PASSWORD_in_table_option4096);
					if (state.failed)
						return retval;
					if (state.backtracking == 0) {
						PASSWORD677_tree = (Object) adaptor.create(PASSWORD677);
						adaptor.addChild(root_0, PASSWORD677_tree);
					}
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:396:16: (
					// EQ_SYM )?
					int alt279 = 2;
					int LA279_0 = input.LA(1);

					if ((LA279_0 == EQ_SYM)) {
						alt279 = 1;
					}
					switch (alt279) {
					case 1:
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:396:17:
					// EQ_SYM
					{
						EQ_SYM678 = (Token) match(input, EQ_SYM,
								FOLLOW_EQ_SYM_in_table_option4099);
						if (state.failed)
							return retval;
						if (state.backtracking == 0) {
							EQ_SYM678_tree = (Object) adaptor.create(EQ_SYM678);
							adaptor.addChild(root_0, EQ_SYM678_tree);
						}

					}
						break;

					}

					TEXT_STRING679 = (Token) match(input, TEXT_STRING,
							FOLLOW_TEXT_STRING_in_table_option4103);
					if (state.failed)
						return retval;
					if (state.backtracking == 0) {
						TEXT_STRING679_tree = (Object) adaptor
								.create(TEXT_STRING679);
						adaptor.addChild(root_0, TEXT_STRING679_tree);
					}

				}

			}
				break;
			case 18:
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:397:4: (
			// ROW_FORMAT_SYM ( EQ_SYM )? ( DEFAULT | DYNAMIC_SYM | FIXED_SYM |
			// COMPRESSED_SYM | REDUNDANT_SYM | COMPACT_SYM ) )
			{
				root_0 = (Object) adaptor.nil();

				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:397:4: (
				// ROW_FORMAT_SYM ( EQ_SYM )? ( DEFAULT | DYNAMIC_SYM |
				// FIXED_SYM | COMPRESSED_SYM | REDUNDANT_SYM | COMPACT_SYM ) )
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:397:7:
				// ROW_FORMAT_SYM ( EQ_SYM )? ( DEFAULT | DYNAMIC_SYM |
				// FIXED_SYM | COMPRESSED_SYM | REDUNDANT_SYM | COMPACT_SYM )
				{
					ROW_FORMAT_SYM680 = (Token) match(input, ROW_FORMAT_SYM,
							FOLLOW_ROW_FORMAT_SYM_in_table_option4114);
					if (state.failed)
						return retval;
					if (state.backtracking == 0) {
						ROW_FORMAT_SYM680_tree = (Object) adaptor
								.create(ROW_FORMAT_SYM680);
						adaptor.addChild(root_0, ROW_FORMAT_SYM680_tree);
					}
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:397:22: (
					// EQ_SYM )?
					int alt280 = 2;
					int LA280_0 = input.LA(1);

					if ((LA280_0 == EQ_SYM)) {
						alt280 = 1;
					}
					switch (alt280) {
					case 1:
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:397:23:
					// EQ_SYM
					{
						EQ_SYM681 = (Token) match(input, EQ_SYM,
								FOLLOW_EQ_SYM_in_table_option4117);
						if (state.failed)
							return retval;
						if (state.backtracking == 0) {
							EQ_SYM681_tree = (Object) adaptor.create(EQ_SYM681);
							adaptor.addChild(root_0, EQ_SYM681_tree);
						}

					}
						break;

					}

					set682 = (Token) input.LT(1);
					if (input.LA(1) == DEFAULT
							|| (input.LA(1) >= FIXED_SYM && input.LA(1) <= DYNAMIC_SYM)
							|| (input.LA(1) >= COMPRESSED_SYM && input.LA(1) <= COMPACT_SYM)) {
						input.consume();
						if (state.backtracking == 0)
							adaptor.addChild(root_0,
									(Object) adaptor.create(set682));
						state.errorRecovery = false;
						state.failed = false;
					} else {
						if (state.backtracking > 0) {
							state.failed = true;
							return retval;
						}
						MismatchedSetException mse = new MismatchedSetException(
								null, input);
						throw mse;
					}

				}

			}
				break;
			case 19:
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:398:4: (
			// STATS_AUTO_RECALC ( EQ_SYM )? ( DEFAULT | INTEGER_NUM ) )
			{
				root_0 = (Object) adaptor.nil();

				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:398:4: (
				// STATS_AUTO_RECALC ( EQ_SYM )? ( DEFAULT | INTEGER_NUM ) )
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:398:7:
				// STATS_AUTO_RECALC ( EQ_SYM )? ( DEFAULT | INTEGER_NUM )
				{
					STATS_AUTO_RECALC683 = (Token) match(input,
							STATS_AUTO_RECALC,
							FOLLOW_STATS_AUTO_RECALC_in_table_option4144);
					if (state.failed)
						return retval;
					if (state.backtracking == 0) {
						STATS_AUTO_RECALC683_tree = (Object) adaptor
								.create(STATS_AUTO_RECALC683);
						adaptor.addChild(root_0, STATS_AUTO_RECALC683_tree);
					}
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:398:25: (
					// EQ_SYM )?
					int alt281 = 2;
					int LA281_0 = input.LA(1);

					if ((LA281_0 == EQ_SYM)) {
						alt281 = 1;
					}
					switch (alt281) {
					case 1:
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:398:26:
					// EQ_SYM
					{
						EQ_SYM684 = (Token) match(input, EQ_SYM,
								FOLLOW_EQ_SYM_in_table_option4147);
						if (state.failed)
							return retval;
						if (state.backtracking == 0) {
							EQ_SYM684_tree = (Object) adaptor.create(EQ_SYM684);
							adaptor.addChild(root_0, EQ_SYM684_tree);
						}

					}
						break;

					}

					set685 = (Token) input.LT(1);
					if (input.LA(1) == INTEGER_NUM || input.LA(1) == DEFAULT) {
						input.consume();
						if (state.backtracking == 0)
							adaptor.addChild(root_0,
									(Object) adaptor.create(set685));
						state.errorRecovery = false;
						state.failed = false;
					} else {
						if (state.backtracking > 0) {
							state.failed = true;
							return retval;
						}
						MismatchedSetException mse = new MismatchedSetException(
								null, input);
						throw mse;
					}

				}

			}
				break;
			case 20:
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:399:4: (
			// STATS_PERSISTENT ( EQ_SYM )? ( DEFAULT | INTEGER_NUM ) )
			{
				root_0 = (Object) adaptor.nil();

				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:399:4: (
				// STATS_PERSISTENT ( EQ_SYM )? ( DEFAULT | INTEGER_NUM ) )
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:399:7:
				// STATS_PERSISTENT ( EQ_SYM )? ( DEFAULT | INTEGER_NUM )
				{
					STATS_PERSISTENT686 = (Token) match(input,
							STATS_PERSISTENT,
							FOLLOW_STATS_PERSISTENT_in_table_option4168);
					if (state.failed)
						return retval;
					if (state.backtracking == 0) {
						STATS_PERSISTENT686_tree = (Object) adaptor
								.create(STATS_PERSISTENT686);
						adaptor.addChild(root_0, STATS_PERSISTENT686_tree);
					}
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:399:24: (
					// EQ_SYM )?
					int alt282 = 2;
					int LA282_0 = input.LA(1);

					if ((LA282_0 == EQ_SYM)) {
						alt282 = 1;
					}
					switch (alt282) {
					case 1:
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:399:25:
					// EQ_SYM
					{
						EQ_SYM687 = (Token) match(input, EQ_SYM,
								FOLLOW_EQ_SYM_in_table_option4171);
						if (state.failed)
							return retval;
						if (state.backtracking == 0) {
							EQ_SYM687_tree = (Object) adaptor.create(EQ_SYM687);
							adaptor.addChild(root_0, EQ_SYM687_tree);
						}

					}
						break;

					}

					set688 = (Token) input.LT(1);
					if (input.LA(1) == INTEGER_NUM || input.LA(1) == DEFAULT) {
						input.consume();
						if (state.backtracking == 0)
							adaptor.addChild(root_0,
									(Object) adaptor.create(set688));
						state.errorRecovery = false;
						state.failed = false;
					} else {
						if (state.backtracking > 0) {
							state.failed = true;
							return retval;
						}
						MismatchedSetException mse = new MismatchedSetException(
								null, input);
						throw mse;
					}

				}

			}
				break;
			case 21:
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:400:4: ( UNION_SYM (
			// EQ_SYM )? LPAREN table_name ( COMMA table_name )* RPAREN )
			{
				root_0 = (Object) adaptor.nil();

				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:400:4: (
				// UNION_SYM ( EQ_SYM )? LPAREN table_name ( COMMA table_name )*
				// RPAREN )
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:400:7: UNION_SYM
				// ( EQ_SYM )? LPAREN table_name ( COMMA table_name )* RPAREN
				{
					UNION_SYM689 = (Token) match(input, UNION_SYM,
							FOLLOW_UNION_SYM_in_table_option4192);
					if (state.failed)
						return retval;
					if (state.backtracking == 0) {
						UNION_SYM689_tree = (Object) adaptor
								.create(UNION_SYM689);
						adaptor.addChild(root_0, UNION_SYM689_tree);
					}
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:400:17: (
					// EQ_SYM )?
					int alt283 = 2;
					int LA283_0 = input.LA(1);

					if ((LA283_0 == EQ_SYM)) {
						alt283 = 1;
					}
					switch (alt283) {
					case 1:
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:400:18:
					// EQ_SYM
					{
						EQ_SYM690 = (Token) match(input, EQ_SYM,
								FOLLOW_EQ_SYM_in_table_option4195);
						if (state.failed)
							return retval;
						if (state.backtracking == 0) {
							EQ_SYM690_tree = (Object) adaptor.create(EQ_SYM690);
							adaptor.addChild(root_0, EQ_SYM690_tree);
						}

					}
						break;

					}

					LPAREN691 = (Token) match(input, LPAREN,
							FOLLOW_LPAREN_in_table_option4199);
					if (state.failed)
						return retval;
					if (state.backtracking == 0) {
						LPAREN691_tree = (Object) adaptor.create(LPAREN691);
						adaptor.addChild(root_0, LPAREN691_tree);
					}
					pushFollow(FOLLOW_table_name_in_table_option4201);
					table_name692 = table_name();

					state._fsp--;
					if (state.failed)
						return retval;
					if (state.backtracking == 0)
						adaptor.addChild(root_0, table_name692.getTree());
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:400:44: (
					// COMMA table_name )*
					loop284: do {
						int alt284 = 2;
						int LA284_0 = input.LA(1);

						if ((LA284_0 == COMMA)) {
							alt284 = 1;
						}

						switch (alt284) {
						case 1:
						// C:\\Users\\grand\\Desktop\\another\\MySQL.g:400:46:
						// COMMA table_name
						{
							COMMA693 = (Token) match(input, COMMA,
									FOLLOW_COMMA_in_table_option4204);
							if (state.failed)
								return retval;
							if (state.backtracking == 0) {
								COMMA693_tree = (Object) adaptor
										.create(COMMA693);
								adaptor.addChild(root_0, COMMA693_tree);
							}
							pushFollow(FOLLOW_table_name_in_table_option4206);
							table_name694 = table_name();

							state._fsp--;
							if (state.failed)
								return retval;
							if (state.backtracking == 0)
								adaptor.addChild(root_0,
										table_name694.getTree());

						}
							break;

						default:
							break loop284;
						}
					} while (true);

					RPAREN695 = (Token) match(input, RPAREN,
							FOLLOW_RPAREN_in_table_option4210);
					if (state.failed)
						return retval;
					if (state.backtracking == 0) {
						RPAREN695_tree = (Object) adaptor.create(RPAREN695);
						adaptor.addChild(root_0, RPAREN695_tree);
					}

				}

			}
				break;

			}
			retval.stop = input.LT(-1);

			if (state.backtracking == 0) {

				retval.tree = (Object) adaptor.rulePostProcessing(root_0);
				adaptor.setTokenBoundaries(retval.tree, retval.start,
						retval.stop);
			}
		} catch (RecognitionException re) {
			reportError(re);
			recover(input, re);
			retval.tree = (Object) adaptor.errorNode(input, retval.start,
					input.LT(-1), re);

		} finally {
		}
		return retval;
	}

	// $ANTLR end "table_option"

	public static class partition_options_return extends ParserRuleReturnScope {
		Object tree;

		public Object getTree() {
			return tree;
		}
	};

	// $ANTLR start "partition_options"
	// C:\\Users\\grand\\Desktop\\another\\MySQL.g:403:1: partition_options :
	// PARTITION_SYM BY_SYM ( ( ( LINEAR_SYM )? HASH_SYM LPAREN expression
	// RPAREN ) | ( ( LINEAR_SYM )? KEY_SYM LPAREN column_list RPAREN ) | (
	// RANGE_SYM ( LPAREN expression RPAREN | COLUMNS_SYM LPAREN column_list
	// RPAREN ) ) | ( LIST_SYM ( LPAREN expression RPAREN | COLUMNS_SYM LPAREN
	// column_list RPAREN ) ) ) ( PARTITIONS_SYM INTEGER_NUM )? (
	// SUBPARTITION_SYM BY_SYM ( ( ( LINEAR_SYM )? HASH_SYM LPAREN expression
	// RPAREN ) | ( ( LINEAR_SYM )? KEY_SYM LPAREN column_list RPAREN ) )
	// SQL_SMALL_RESULT ( SUBPARTITIONS_SYM INTEGER_NUM )? )? ( LPAREN
	// partition_definition ( COMMA partition_definition )* RPAREN )? ;
	public final MySQLParser.partition_options_return partition_options()
			throws RecognitionException {
		MySQLParser.partition_options_return retval = new MySQLParser.partition_options_return();
		retval.start = input.LT(1);

		Object root_0 = null;

		Token PARTITION_SYM696 = null;
		Token BY_SYM697 = null;
		Token LINEAR_SYM698 = null;
		Token HASH_SYM699 = null;
		Token LPAREN700 = null;
		Token RPAREN702 = null;
		Token LINEAR_SYM703 = null;
		Token KEY_SYM704 = null;
		Token LPAREN705 = null;
		Token RPAREN707 = null;
		Token RANGE_SYM708 = null;
		Token LPAREN709 = null;
		Token RPAREN711 = null;
		Token COLUMNS_SYM712 = null;
		Token LPAREN713 = null;
		Token RPAREN715 = null;
		Token LIST_SYM716 = null;
		Token LPAREN717 = null;
		Token RPAREN719 = null;
		Token COLUMNS_SYM720 = null;
		Token LPAREN721 = null;
		Token RPAREN723 = null;
		Token PARTITIONS_SYM724 = null;
		Token INTEGER_NUM725 = null;
		Token SUBPARTITION_SYM726 = null;
		Token BY_SYM727 = null;
		Token LINEAR_SYM728 = null;
		Token HASH_SYM729 = null;
		Token LPAREN730 = null;
		Token RPAREN732 = null;
		Token LINEAR_SYM733 = null;
		Token KEY_SYM734 = null;
		Token LPAREN735 = null;
		Token RPAREN737 = null;
		Token SQL_SMALL_RESULT738 = null;
		Token SUBPARTITIONS_SYM739 = null;
		Token INTEGER_NUM740 = null;
		Token LPAREN741 = null;
		Token COMMA743 = null;
		Token RPAREN745 = null;
		MySQLParser.expression_return expression701 = null;

		MySQLParser.column_list_return column_list706 = null;

		MySQLParser.expression_return expression710 = null;

		MySQLParser.column_list_return column_list714 = null;

		MySQLParser.expression_return expression718 = null;

		MySQLParser.column_list_return column_list722 = null;

		MySQLParser.expression_return expression731 = null;

		MySQLParser.column_list_return column_list736 = null;

		MySQLParser.partition_definition_return partition_definition742 = null;

		MySQLParser.partition_definition_return partition_definition744 = null;

		Object PARTITION_SYM696_tree = null;
		Object BY_SYM697_tree = null;
		Object LINEAR_SYM698_tree = null;
		Object HASH_SYM699_tree = null;
		Object LPAREN700_tree = null;
		Object RPAREN702_tree = null;
		Object LINEAR_SYM703_tree = null;
		Object KEY_SYM704_tree = null;
		Object LPAREN705_tree = null;
		Object RPAREN707_tree = null;
		Object RANGE_SYM708_tree = null;
		Object LPAREN709_tree = null;
		Object RPAREN711_tree = null;
		Object COLUMNS_SYM712_tree = null;
		Object LPAREN713_tree = null;
		Object RPAREN715_tree = null;
		Object LIST_SYM716_tree = null;
		Object LPAREN717_tree = null;
		Object RPAREN719_tree = null;
		Object COLUMNS_SYM720_tree = null;
		Object LPAREN721_tree = null;
		Object RPAREN723_tree = null;
		Object PARTITIONS_SYM724_tree = null;
		Object INTEGER_NUM725_tree = null;
		Object SUBPARTITION_SYM726_tree = null;
		Object BY_SYM727_tree = null;
		Object LINEAR_SYM728_tree = null;
		Object HASH_SYM729_tree = null;
		Object LPAREN730_tree = null;
		Object RPAREN732_tree = null;
		Object LINEAR_SYM733_tree = null;
		Object KEY_SYM734_tree = null;
		Object LPAREN735_tree = null;
		Object RPAREN737_tree = null;
		Object SQL_SMALL_RESULT738_tree = null;
		Object SUBPARTITIONS_SYM739_tree = null;
		Object INTEGER_NUM740_tree = null;
		Object LPAREN741_tree = null;
		Object COMMA743_tree = null;
		Object RPAREN745_tree = null;

		try {
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:403:18: (
			// PARTITION_SYM BY_SYM ( ( ( LINEAR_SYM )? HASH_SYM LPAREN
			// expression RPAREN ) | ( ( LINEAR_SYM )? KEY_SYM LPAREN
			// column_list RPAREN ) | ( RANGE_SYM ( LPAREN expression RPAREN |
			// COLUMNS_SYM LPAREN column_list RPAREN ) ) | ( LIST_SYM ( LPAREN
			// expression RPAREN | COLUMNS_SYM LPAREN column_list RPAREN ) ) ) (
			// PARTITIONS_SYM INTEGER_NUM )? ( SUBPARTITION_SYM BY_SYM ( ( (
			// LINEAR_SYM )? HASH_SYM LPAREN expression RPAREN ) | ( (
			// LINEAR_SYM )? KEY_SYM LPAREN column_list RPAREN ) )
			// SQL_SMALL_RESULT ( SUBPARTITIONS_SYM INTEGER_NUM )? )? ( LPAREN
			// partition_definition ( COMMA partition_definition )* RPAREN )? )
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:404:2: PARTITION_SYM
			// BY_SYM ( ( ( LINEAR_SYM )? HASH_SYM LPAREN expression RPAREN ) |
			// ( ( LINEAR_SYM )? KEY_SYM LPAREN column_list RPAREN ) | (
			// RANGE_SYM ( LPAREN expression RPAREN | COLUMNS_SYM LPAREN
			// column_list RPAREN ) ) | ( LIST_SYM ( LPAREN expression RPAREN |
			// COLUMNS_SYM LPAREN column_list RPAREN ) ) ) ( PARTITIONS_SYM
			// INTEGER_NUM )? ( SUBPARTITION_SYM BY_SYM ( ( ( LINEAR_SYM )?
			// HASH_SYM LPAREN expression RPAREN ) | ( ( LINEAR_SYM )? KEY_SYM
			// LPAREN column_list RPAREN ) ) SQL_SMALL_RESULT (
			// SUBPARTITIONS_SYM INTEGER_NUM )? )? ( LPAREN partition_definition
			// ( COMMA partition_definition )* RPAREN )?
			{
				root_0 = (Object) adaptor.nil();

				PARTITION_SYM696 = (Token) match(input, PARTITION_SYM,
						FOLLOW_PARTITION_SYM_in_partition_options4222);
				if (state.failed)
					return retval;
				if (state.backtracking == 0) {
					PARTITION_SYM696_tree = (Object) adaptor
							.create(PARTITION_SYM696);
					adaptor.addChild(root_0, PARTITION_SYM696_tree);
				}
				BY_SYM697 = (Token) match(input, BY_SYM,
						FOLLOW_BY_SYM_in_partition_options4224);
				if (state.failed)
					return retval;
				if (state.backtracking == 0) {
					BY_SYM697_tree = (Object) adaptor.create(BY_SYM697);
					adaptor.addChild(root_0, BY_SYM697_tree);
				}
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:405:2: ( ( (
				// LINEAR_SYM )? HASH_SYM LPAREN expression RPAREN ) | ( (
				// LINEAR_SYM )? KEY_SYM LPAREN column_list RPAREN ) | (
				// RANGE_SYM ( LPAREN expression RPAREN | COLUMNS_SYM LPAREN
				// column_list RPAREN ) ) | ( LIST_SYM ( LPAREN expression
				// RPAREN | COLUMNS_SYM LPAREN column_list RPAREN ) ) )
				int alt290 = 4;
				switch (input.LA(1)) {
				case LINEAR_SYM: {
					int LA290_1 = input.LA(2);

					if ((LA290_1 == KEY_SYM)) {
						alt290 = 2;
					} else if ((LA290_1 == HASH_SYM)) {
						alt290 = 1;
					} else {
						if (state.backtracking > 0) {
							state.failed = true;
							return retval;
						}
						NoViableAltException nvae = new NoViableAltException(
								"", 290, 1, input);

						throw nvae;
					}
				}
					break;
				case HASH_SYM: {
					alt290 = 1;
				}
					break;
				case KEY_SYM: {
					alt290 = 2;
				}
					break;
				case RANGE_SYM: {
					alt290 = 3;
				}
					break;
				case LIST_SYM: {
					alt290 = 4;
				}
					break;
				default:
					if (state.backtracking > 0) {
						state.failed = true;
						return retval;
					}
					NoViableAltException nvae = new NoViableAltException("",
							290, 0, input);

					throw nvae;
				}

				switch (alt290) {
				case 1:
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:406:5: ( (
				// LINEAR_SYM )? HASH_SYM LPAREN expression RPAREN )
				{
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:406:5: ( (
					// LINEAR_SYM )? HASH_SYM LPAREN expression RPAREN )
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:406:7: (
					// LINEAR_SYM )? HASH_SYM LPAREN expression RPAREN
					{
						// C:\\Users\\grand\\Desktop\\another\\MySQL.g:406:7: (
						// LINEAR_SYM )?
						int alt286 = 2;
						int LA286_0 = input.LA(1);

						if ((LA286_0 == LINEAR_SYM)) {
							alt286 = 1;
						}
						switch (alt286) {
						case 1:
						// C:\\Users\\grand\\Desktop\\another\\MySQL.g:406:8:
						// LINEAR_SYM
						{
							LINEAR_SYM698 = (Token) match(input, LINEAR_SYM,
									FOLLOW_LINEAR_SYM_in_partition_options4237);
							if (state.failed)
								return retval;
							if (state.backtracking == 0) {
								LINEAR_SYM698_tree = (Object) adaptor
										.create(LINEAR_SYM698);
								adaptor.addChild(root_0, LINEAR_SYM698_tree);
							}

						}
							break;

						}

						HASH_SYM699 = (Token) match(input, HASH_SYM,
								FOLLOW_HASH_SYM_in_partition_options4241);
						if (state.failed)
							return retval;
						if (state.backtracking == 0) {
							HASH_SYM699_tree = (Object) adaptor
									.create(HASH_SYM699);
							adaptor.addChild(root_0, HASH_SYM699_tree);
						}
						LPAREN700 = (Token) match(input, LPAREN,
								FOLLOW_LPAREN_in_partition_options4243);
						if (state.failed)
							return retval;
						if (state.backtracking == 0) {
							LPAREN700_tree = (Object) adaptor.create(LPAREN700);
							adaptor.addChild(root_0, LPAREN700_tree);
						}
						pushFollow(FOLLOW_expression_in_partition_options4245);
						expression701 = expression();

						state._fsp--;
						if (state.failed)
							return retval;
						if (state.backtracking == 0)
							adaptor.addChild(root_0, expression701.getTree());
						RPAREN702 = (Token) match(input, RPAREN,
								FOLLOW_RPAREN_in_partition_options4247);
						if (state.failed)
							return retval;
						if (state.backtracking == 0) {
							RPAREN702_tree = (Object) adaptor.create(RPAREN702);
							adaptor.addChild(root_0, RPAREN702_tree);
						}

					}

				}
					break;
				case 2:
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:407:5: ( (
				// LINEAR_SYM )? KEY_SYM LPAREN column_list RPAREN )
				{
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:407:5: ( (
					// LINEAR_SYM )? KEY_SYM LPAREN column_list RPAREN )
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:407:7: (
					// LINEAR_SYM )? KEY_SYM LPAREN column_list RPAREN
					{
						// C:\\Users\\grand\\Desktop\\another\\MySQL.g:407:7: (
						// LINEAR_SYM )?
						int alt287 = 2;
						int LA287_0 = input.LA(1);

						if ((LA287_0 == LINEAR_SYM)) {
							alt287 = 1;
						}
						switch (alt287) {
						case 1:
						// C:\\Users\\grand\\Desktop\\another\\MySQL.g:407:8:
						// LINEAR_SYM
						{
							LINEAR_SYM703 = (Token) match(input, LINEAR_SYM,
									FOLLOW_LINEAR_SYM_in_partition_options4258);
							if (state.failed)
								return retval;
							if (state.backtracking == 0) {
								LINEAR_SYM703_tree = (Object) adaptor
										.create(LINEAR_SYM703);
								adaptor.addChild(root_0, LINEAR_SYM703_tree);
							}

						}
							break;

						}

						KEY_SYM704 = (Token) match(input, KEY_SYM,
								FOLLOW_KEY_SYM_in_partition_options4262);
						if (state.failed)
							return retval;
						if (state.backtracking == 0) {
							KEY_SYM704_tree = (Object) adaptor
									.create(KEY_SYM704);
							adaptor.addChild(root_0, KEY_SYM704_tree);
						}
						LPAREN705 = (Token) match(input, LPAREN,
								FOLLOW_LPAREN_in_partition_options4264);
						if (state.failed)
							return retval;
						if (state.backtracking == 0) {
							LPAREN705_tree = (Object) adaptor.create(LPAREN705);
							adaptor.addChild(root_0, LPAREN705_tree);
						}
						pushFollow(FOLLOW_column_list_in_partition_options4266);
						column_list706 = column_list();

						state._fsp--;
						if (state.failed)
							return retval;
						if (state.backtracking == 0)
							adaptor.addChild(root_0, column_list706.getTree());
						RPAREN707 = (Token) match(input, RPAREN,
								FOLLOW_RPAREN_in_partition_options4268);
						if (state.failed)
							return retval;
						if (state.backtracking == 0) {
							RPAREN707_tree = (Object) adaptor.create(RPAREN707);
							adaptor.addChild(root_0, RPAREN707_tree);
						}

					}

				}
					break;
				case 3:
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:408:5: (
				// RANGE_SYM ( LPAREN expression RPAREN | COLUMNS_SYM LPAREN
				// column_list RPAREN ) )
				{
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:408:5: (
					// RANGE_SYM ( LPAREN expression RPAREN | COLUMNS_SYM LPAREN
					// column_list RPAREN ) )
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:408:7:
					// RANGE_SYM ( LPAREN expression RPAREN | COLUMNS_SYM LPAREN
					// column_list RPAREN )
					{
						RANGE_SYM708 = (Token) match(input, RANGE_SYM,
								FOLLOW_RANGE_SYM_in_partition_options4278);
						if (state.failed)
							return retval;
						if (state.backtracking == 0) {
							RANGE_SYM708_tree = (Object) adaptor
									.create(RANGE_SYM708);
							adaptor.addChild(root_0, RANGE_SYM708_tree);
						}
						// C:\\Users\\grand\\Desktop\\another\\MySQL.g:408:16: (
						// LPAREN expression RPAREN | COLUMNS_SYM LPAREN
						// column_list RPAREN )
						int alt288 = 2;
						int LA288_0 = input.LA(1);

						if ((LA288_0 == LPAREN)) {
							alt288 = 1;
						} else if ((LA288_0 == COLUMNS_SYM)) {
							alt288 = 2;
						} else {
							if (state.backtracking > 0) {
								state.failed = true;
								return retval;
							}
							NoViableAltException nvae = new NoViableAltException(
									"", 288, 0, input);

							throw nvae;
						}
						switch (alt288) {
						case 1:
						// C:\\Users\\grand\\Desktop\\another\\MySQL.g:408:17:
						// LPAREN expression RPAREN
						{
							LPAREN709 = (Token) match(input, LPAREN,
									FOLLOW_LPAREN_in_partition_options4280);
							if (state.failed)
								return retval;
							if (state.backtracking == 0) {
								LPAREN709_tree = (Object) adaptor
										.create(LPAREN709);
								adaptor.addChild(root_0, LPAREN709_tree);
							}
							pushFollow(FOLLOW_expression_in_partition_options4282);
							expression710 = expression();

							state._fsp--;
							if (state.failed)
								return retval;
							if (state.backtracking == 0)
								adaptor.addChild(root_0,
										expression710.getTree());
							RPAREN711 = (Token) match(input, RPAREN,
									FOLLOW_RPAREN_in_partition_options4284);
							if (state.failed)
								return retval;
							if (state.backtracking == 0) {
								RPAREN711_tree = (Object) adaptor
										.create(RPAREN711);
								adaptor.addChild(root_0, RPAREN711_tree);
							}

						}
							break;
						case 2:
						// C:\\Users\\grand\\Desktop\\another\\MySQL.g:408:44:
						// COLUMNS_SYM LPAREN column_list RPAREN
						{
							COLUMNS_SYM712 = (Token) match(input, COLUMNS_SYM,
									FOLLOW_COLUMNS_SYM_in_partition_options4288);
							if (state.failed)
								return retval;
							if (state.backtracking == 0) {
								COLUMNS_SYM712_tree = (Object) adaptor
										.create(COLUMNS_SYM712);
								adaptor.addChild(root_0, COLUMNS_SYM712_tree);
							}
							LPAREN713 = (Token) match(input, LPAREN,
									FOLLOW_LPAREN_in_partition_options4290);
							if (state.failed)
								return retval;
							if (state.backtracking == 0) {
								LPAREN713_tree = (Object) adaptor
										.create(LPAREN713);
								adaptor.addChild(root_0, LPAREN713_tree);
							}
							pushFollow(FOLLOW_column_list_in_partition_options4292);
							column_list714 = column_list();

							state._fsp--;
							if (state.failed)
								return retval;
							if (state.backtracking == 0)
								adaptor.addChild(root_0,
										column_list714.getTree());
							RPAREN715 = (Token) match(input, RPAREN,
									FOLLOW_RPAREN_in_partition_options4294);
							if (state.failed)
								return retval;
							if (state.backtracking == 0) {
								RPAREN715_tree = (Object) adaptor
										.create(RPAREN715);
								adaptor.addChild(root_0, RPAREN715_tree);
							}

						}
							break;

						}

					}

				}
					break;
				case 4:
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:409:5: ( LIST_SYM
				// ( LPAREN expression RPAREN | COLUMNS_SYM LPAREN column_list
				// RPAREN ) )
				{
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:409:5: (
					// LIST_SYM ( LPAREN expression RPAREN | COLUMNS_SYM LPAREN
					// column_list RPAREN ) )
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:409:7:
					// LIST_SYM ( LPAREN expression RPAREN | COLUMNS_SYM LPAREN
					// column_list RPAREN )
					{
						LIST_SYM716 = (Token) match(input, LIST_SYM,
								FOLLOW_LIST_SYM_in_partition_options4305);
						if (state.failed)
							return retval;
						if (state.backtracking == 0) {
							LIST_SYM716_tree = (Object) adaptor
									.create(LIST_SYM716);
							adaptor.addChild(root_0, LIST_SYM716_tree);
						}
						// C:\\Users\\grand\\Desktop\\another\\MySQL.g:409:15: (
						// LPAREN expression RPAREN | COLUMNS_SYM LPAREN
						// column_list RPAREN )
						int alt289 = 2;
						int LA289_0 = input.LA(1);

						if ((LA289_0 == LPAREN)) {
							alt289 = 1;
						} else if ((LA289_0 == COLUMNS_SYM)) {
							alt289 = 2;
						} else {
							if (state.backtracking > 0) {
								state.failed = true;
								return retval;
							}
							NoViableAltException nvae = new NoViableAltException(
									"", 289, 0, input);

							throw nvae;
						}
						switch (alt289) {
						case 1:
						// C:\\Users\\grand\\Desktop\\another\\MySQL.g:409:16:
						// LPAREN expression RPAREN
						{
							LPAREN717 = (Token) match(input, LPAREN,
									FOLLOW_LPAREN_in_partition_options4307);
							if (state.failed)
								return retval;
							if (state.backtracking == 0) {
								LPAREN717_tree = (Object) adaptor
										.create(LPAREN717);
								adaptor.addChild(root_0, LPAREN717_tree);
							}
							pushFollow(FOLLOW_expression_in_partition_options4309);
							expression718 = expression();

							state._fsp--;
							if (state.failed)
								return retval;
							if (state.backtracking == 0)
								adaptor.addChild(root_0,
										expression718.getTree());
							RPAREN719 = (Token) match(input, RPAREN,
									FOLLOW_RPAREN_in_partition_options4311);
							if (state.failed)
								return retval;
							if (state.backtracking == 0) {
								RPAREN719_tree = (Object) adaptor
										.create(RPAREN719);
								adaptor.addChild(root_0, RPAREN719_tree);
							}

						}
							break;
						case 2:
						// C:\\Users\\grand\\Desktop\\another\\MySQL.g:409:43:
						// COLUMNS_SYM LPAREN column_list RPAREN
						{
							COLUMNS_SYM720 = (Token) match(input, COLUMNS_SYM,
									FOLLOW_COLUMNS_SYM_in_partition_options4315);
							if (state.failed)
								return retval;
							if (state.backtracking == 0) {
								COLUMNS_SYM720_tree = (Object) adaptor
										.create(COLUMNS_SYM720);
								adaptor.addChild(root_0, COLUMNS_SYM720_tree);
							}
							LPAREN721 = (Token) match(input, LPAREN,
									FOLLOW_LPAREN_in_partition_options4317);
							if (state.failed)
								return retval;
							if (state.backtracking == 0) {
								LPAREN721_tree = (Object) adaptor
										.create(LPAREN721);
								adaptor.addChild(root_0, LPAREN721_tree);
							}
							pushFollow(FOLLOW_column_list_in_partition_options4319);
							column_list722 = column_list();

							state._fsp--;
							if (state.failed)
								return retval;
							if (state.backtracking == 0)
								adaptor.addChild(root_0,
										column_list722.getTree());
							RPAREN723 = (Token) match(input, RPAREN,
									FOLLOW_RPAREN_in_partition_options4321);
							if (state.failed)
								return retval;
							if (state.backtracking == 0) {
								RPAREN723_tree = (Object) adaptor
										.create(RPAREN723);
								adaptor.addChild(root_0, RPAREN723_tree);
							}

						}
							break;

						}

					}

				}
					break;

				}

				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:412:2: (
				// PARTITIONS_SYM INTEGER_NUM )?
				int alt291 = 2;
				int LA291_0 = input.LA(1);

				if ((LA291_0 == PARTITIONS_SYM)) {
					alt291 = 1;
				}
				switch (alt291) {
				case 1:
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:412:3:
				// PARTITIONS_SYM INTEGER_NUM
				{
					PARTITIONS_SYM724 = (Token) match(input, PARTITIONS_SYM,
							FOLLOW_PARTITIONS_SYM_in_partition_options4333);
					if (state.failed)
						return retval;
					if (state.backtracking == 0) {
						PARTITIONS_SYM724_tree = (Object) adaptor
								.create(PARTITIONS_SYM724);
						adaptor.addChild(root_0, PARTITIONS_SYM724_tree);
					}
					INTEGER_NUM725 = (Token) match(input, INTEGER_NUM,
							FOLLOW_INTEGER_NUM_in_partition_options4335);
					if (state.failed)
						return retval;
					if (state.backtracking == 0) {
						INTEGER_NUM725_tree = (Object) adaptor
								.create(INTEGER_NUM725);
						adaptor.addChild(root_0, INTEGER_NUM725_tree);
					}

				}
					break;

				}

				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:414:2: (
				// SUBPARTITION_SYM BY_SYM ( ( ( LINEAR_SYM )? HASH_SYM LPAREN
				// expression RPAREN ) | ( ( LINEAR_SYM )? KEY_SYM LPAREN
				// column_list RPAREN ) ) SQL_SMALL_RESULT ( SUBPARTITIONS_SYM
				// INTEGER_NUM )? )?
				int alt296 = 2;
				int LA296_0 = input.LA(1);

				if ((LA296_0 == SUBPARTITION_SYM)) {
					alt296 = 1;
				}
				switch (alt296) {
				case 1:
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:415:3:
				// SUBPARTITION_SYM BY_SYM ( ( ( LINEAR_SYM )? HASH_SYM LPAREN
				// expression RPAREN ) | ( ( LINEAR_SYM )? KEY_SYM LPAREN
				// column_list RPAREN ) ) SQL_SMALL_RESULT ( SUBPARTITIONS_SYM
				// INTEGER_NUM )?
				{
					SUBPARTITION_SYM726 = (Token) match(input,
							SUBPARTITION_SYM,
							FOLLOW_SUBPARTITION_SYM_in_partition_options4346);
					if (state.failed)
						return retval;
					if (state.backtracking == 0) {
						SUBPARTITION_SYM726_tree = (Object) adaptor
								.create(SUBPARTITION_SYM726);
						adaptor.addChild(root_0, SUBPARTITION_SYM726_tree);
					}
					BY_SYM727 = (Token) match(input, BY_SYM,
							FOLLOW_BY_SYM_in_partition_options4348);
					if (state.failed)
						return retval;
					if (state.backtracking == 0) {
						BY_SYM727_tree = (Object) adaptor.create(BY_SYM727);
						adaptor.addChild(root_0, BY_SYM727_tree);
					}
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:416:3: ( ( (
					// LINEAR_SYM )? HASH_SYM LPAREN expression RPAREN ) | ( (
					// LINEAR_SYM )? KEY_SYM LPAREN column_list RPAREN ) )
					int alt294 = 2;
					switch (input.LA(1)) {
					case LINEAR_SYM: {
						int LA294_1 = input.LA(2);

						if ((LA294_1 == HASH_SYM)) {
							alt294 = 1;
						} else if ((LA294_1 == KEY_SYM)) {
							alt294 = 2;
						} else {
							if (state.backtracking > 0) {
								state.failed = true;
								return retval;
							}
							NoViableAltException nvae = new NoViableAltException(
									"", 294, 1, input);

							throw nvae;
						}
					}
						break;
					case HASH_SYM: {
						alt294 = 1;
					}
						break;
					case KEY_SYM: {
						alt294 = 2;
					}
						break;
					default:
						if (state.backtracking > 0) {
							state.failed = true;
							return retval;
						}
						NoViableAltException nvae = new NoViableAltException(
								"", 294, 0, input);

						throw nvae;
					}

					switch (alt294) {
					case 1:
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:416:5: ( (
					// LINEAR_SYM )? HASH_SYM LPAREN expression RPAREN )
					{
						// C:\\Users\\grand\\Desktop\\another\\MySQL.g:416:5: (
						// ( LINEAR_SYM )? HASH_SYM LPAREN expression RPAREN )
						// C:\\Users\\grand\\Desktop\\another\\MySQL.g:416:7: (
						// LINEAR_SYM )? HASH_SYM LPAREN expression RPAREN
						{
							// C:\\Users\\grand\\Desktop\\another\\MySQL.g:416:7:
							// ( LINEAR_SYM )?
							int alt292 = 2;
							int LA292_0 = input.LA(1);

							if ((LA292_0 == LINEAR_SYM)) {
								alt292 = 1;
							}
							switch (alt292) {
							case 1:
							// C:\\Users\\grand\\Desktop\\another\\MySQL.g:416:8:
							// LINEAR_SYM
							{
								LINEAR_SYM728 = (Token) match(input,
										LINEAR_SYM,
										FOLLOW_LINEAR_SYM_in_partition_options4357);
								if (state.failed)
									return retval;
								if (state.backtracking == 0) {
									LINEAR_SYM728_tree = (Object) adaptor
											.create(LINEAR_SYM728);
									adaptor.addChild(root_0, LINEAR_SYM728_tree);
								}

							}
								break;

							}

							HASH_SYM729 = (Token) match(input, HASH_SYM,
									FOLLOW_HASH_SYM_in_partition_options4361);
							if (state.failed)
								return retval;
							if (state.backtracking == 0) {
								HASH_SYM729_tree = (Object) adaptor
										.create(HASH_SYM729);
								adaptor.addChild(root_0, HASH_SYM729_tree);
							}
							LPAREN730 = (Token) match(input, LPAREN,
									FOLLOW_LPAREN_in_partition_options4363);
							if (state.failed)
								return retval;
							if (state.backtracking == 0) {
								LPAREN730_tree = (Object) adaptor
										.create(LPAREN730);
								adaptor.addChild(root_0, LPAREN730_tree);
							}
							pushFollow(FOLLOW_expression_in_partition_options4365);
							expression731 = expression();

							state._fsp--;
							if (state.failed)
								return retval;
							if (state.backtracking == 0)
								adaptor.addChild(root_0,
										expression731.getTree());
							RPAREN732 = (Token) match(input, RPAREN,
									FOLLOW_RPAREN_in_partition_options4367);
							if (state.failed)
								return retval;
							if (state.backtracking == 0) {
								RPAREN732_tree = (Object) adaptor
										.create(RPAREN732);
								adaptor.addChild(root_0, RPAREN732_tree);
							}

						}

					}
						break;
					case 2:
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:416:59: ( (
					// LINEAR_SYM )? KEY_SYM LPAREN column_list RPAREN )
					{
						// C:\\Users\\grand\\Desktop\\another\\MySQL.g:416:59: (
						// ( LINEAR_SYM )? KEY_SYM LPAREN column_list RPAREN )
						// C:\\Users\\grand\\Desktop\\another\\MySQL.g:416:61: (
						// LINEAR_SYM )? KEY_SYM LPAREN column_list RPAREN
						{
							// C:\\Users\\grand\\Desktop\\another\\MySQL.g:416:61:
							// ( LINEAR_SYM )?
							int alt293 = 2;
							int LA293_0 = input.LA(1);

							if ((LA293_0 == LINEAR_SYM)) {
								alt293 = 1;
							}
							switch (alt293) {
							case 1:
							// C:\\Users\\grand\\Desktop\\another\\MySQL.g:416:62:
							// LINEAR_SYM
							{
								LINEAR_SYM733 = (Token) match(input,
										LINEAR_SYM,
										FOLLOW_LINEAR_SYM_in_partition_options4376);
								if (state.failed)
									return retval;
								if (state.backtracking == 0) {
									LINEAR_SYM733_tree = (Object) adaptor
											.create(LINEAR_SYM733);
									adaptor.addChild(root_0, LINEAR_SYM733_tree);
								}

							}
								break;

							}

							KEY_SYM734 = (Token) match(input, KEY_SYM,
									FOLLOW_KEY_SYM_in_partition_options4380);
							if (state.failed)
								return retval;
							if (state.backtracking == 0) {
								KEY_SYM734_tree = (Object) adaptor
										.create(KEY_SYM734);
								adaptor.addChild(root_0, KEY_SYM734_tree);
							}
							LPAREN735 = (Token) match(input, LPAREN,
									FOLLOW_LPAREN_in_partition_options4382);
							if (state.failed)
								return retval;
							if (state.backtracking == 0) {
								LPAREN735_tree = (Object) adaptor
										.create(LPAREN735);
								adaptor.addChild(root_0, LPAREN735_tree);
							}
							pushFollow(FOLLOW_column_list_in_partition_options4384);
							column_list736 = column_list();

							state._fsp--;
							if (state.failed)
								return retval;
							if (state.backtracking == 0)
								adaptor.addChild(root_0,
										column_list736.getTree());
							RPAREN737 = (Token) match(input, RPAREN,
									FOLLOW_RPAREN_in_partition_options4386);
							if (state.failed)
								return retval;
							if (state.backtracking == 0) {
								RPAREN737_tree = (Object) adaptor
										.create(RPAREN737);
								adaptor.addChild(root_0, RPAREN737_tree);
							}

						}

					}
						break;

					}

					SQL_SMALL_RESULT738 = (Token) match(input,
							SQL_SMALL_RESULT,
							FOLLOW_SQL_SMALL_RESULT_in_partition_options4394);
					if (state.failed)
						return retval;
					if (state.backtracking == 0) {
						SQL_SMALL_RESULT738_tree = (Object) adaptor
								.create(SQL_SMALL_RESULT738);
						adaptor.addChild(root_0, SQL_SMALL_RESULT738_tree);
					}
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:417:19: (
					// SUBPARTITIONS_SYM INTEGER_NUM )?
					int alt295 = 2;
					int LA295_0 = input.LA(1);

					if ((LA295_0 == SUBPARTITIONS_SYM)) {
						alt295 = 1;
					}
					switch (alt295) {
					case 1:
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:417:20:
					// SUBPARTITIONS_SYM INTEGER_NUM
					{
						SUBPARTITIONS_SYM739 = (Token) match(input,
								SUBPARTITIONS_SYM,
								FOLLOW_SUBPARTITIONS_SYM_in_partition_options4396);
						if (state.failed)
							return retval;
						if (state.backtracking == 0) {
							SUBPARTITIONS_SYM739_tree = (Object) adaptor
									.create(SUBPARTITIONS_SYM739);
							adaptor.addChild(root_0, SUBPARTITIONS_SYM739_tree);
						}
						INTEGER_NUM740 = (Token) match(input, INTEGER_NUM,
								FOLLOW_INTEGER_NUM_in_partition_options4398);
						if (state.failed)
							return retval;
						if (state.backtracking == 0) {
							INTEGER_NUM740_tree = (Object) adaptor
									.create(INTEGER_NUM740);
							adaptor.addChild(root_0, INTEGER_NUM740_tree);
						}

					}
						break;

					}

				}
					break;

				}

				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:420:2: ( LPAREN
				// partition_definition ( COMMA partition_definition )* RPAREN
				// )?
				int alt298 = 2;
				int LA298_0 = input.LA(1);

				if ((LA298_0 == LPAREN)) {
					alt298 = 1;
				}
				switch (alt298) {
				case 1:
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:420:3: LPAREN
				// partition_definition ( COMMA partition_definition )* RPAREN
				{
					LPAREN741 = (Token) match(input, LPAREN,
							FOLLOW_LPAREN_in_partition_options4410);
					if (state.failed)
						return retval;
					if (state.backtracking == 0) {
						LPAREN741_tree = (Object) adaptor.create(LPAREN741);
						adaptor.addChild(root_0, LPAREN741_tree);
					}
					pushFollow(FOLLOW_partition_definition_in_partition_options4412);
					partition_definition742 = partition_definition();

					state._fsp--;
					if (state.failed)
						return retval;
					if (state.backtracking == 0)
						adaptor.addChild(root_0,
								partition_definition742.getTree());
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:420:31: (
					// COMMA partition_definition )*
					loop297: do {
						int alt297 = 2;
						int LA297_0 = input.LA(1);

						if ((LA297_0 == COMMA)) {
							alt297 = 1;
						}

						switch (alt297) {
						case 1:
						// C:\\Users\\grand\\Desktop\\another\\MySQL.g:420:33:
						// COMMA partition_definition
						{
							COMMA743 = (Token) match(input, COMMA,
									FOLLOW_COMMA_in_partition_options4416);
							if (state.failed)
								return retval;
							if (state.backtracking == 0) {
								COMMA743_tree = (Object) adaptor
										.create(COMMA743);
								adaptor.addChild(root_0, COMMA743_tree);
							}
							pushFollow(FOLLOW_partition_definition_in_partition_options4419);
							partition_definition744 = partition_definition();

							state._fsp--;
							if (state.failed)
								return retval;
							if (state.backtracking == 0)
								adaptor.addChild(root_0,
										partition_definition744.getTree());

						}
							break;

						default:
							break loop297;
						}
					} while (true);

					RPAREN745 = (Token) match(input, RPAREN,
							FOLLOW_RPAREN_in_partition_options4423);
					if (state.failed)
						return retval;
					if (state.backtracking == 0) {
						RPAREN745_tree = (Object) adaptor.create(RPAREN745);
						adaptor.addChild(root_0, RPAREN745_tree);
					}

				}
					break;

				}

			}

			retval.stop = input.LT(-1);

			if (state.backtracking == 0) {

				retval.tree = (Object) adaptor.rulePostProcessing(root_0);
				adaptor.setTokenBoundaries(retval.tree, retval.start,
						retval.stop);
			}
		} catch (RecognitionException re) {
			reportError(re);
			recover(input, re);
			retval.tree = (Object) adaptor.errorNode(input, retval.start,
					input.LT(-1), re);

		} finally {
		}
		return retval;
	}

	// $ANTLR end "partition_options"

	public static class partition_definition_return extends
			ParserRuleReturnScope {
		Object tree;

		public Object getTree() {
			return tree;
		}
	};

	// $ANTLR start "partition_definition"
	// C:\\Users\\grand\\Desktop\\another\\MySQL.g:423:1: partition_definition :
	// PARTITION_SYM partition_name ( VALUES ( ( LESS_SYM THAN_SYM ( ( LPAREN
	// expression_list RPAREN ) | MAXVALUE_SYM ) ) | ( IN_SYM LPAREN
	// expression_list RPAREN ) ) )? ( ( STORAGE_SYM )? ENGINE_SYM ( EQ_SYM )?
	// engine_name )? ( COMMENT_SYM ( EQ_SYM )? TEXT_STRING )? ( DATA_SYM
	// DIRECTORY_SYM ( EQ_SYM )? TEXT_STRING )? ( INDEX_SYM DIRECTORY_SYM (
	// EQ_SYM )? TEXT_STRING )? ( MAX_ROWS ( EQ_SYM )? INTEGER_NUM )? ( MIN_ROWS
	// ( EQ_SYM )? INTEGER_NUM )? ( LPAREN subpartition_definition ( COMMA
	// subpartition_definition )* RPAREN )? ;
	public final MySQLParser.partition_definition_return partition_definition()
			throws RecognitionException {
		MySQLParser.partition_definition_return retval = new MySQLParser.partition_definition_return();
		retval.start = input.LT(1);

		Object root_0 = null;

		Token PARTITION_SYM746 = null;
		Token VALUES748 = null;
		Token LESS_SYM749 = null;
		Token THAN_SYM750 = null;
		Token LPAREN751 = null;
		Token RPAREN753 = null;
		Token MAXVALUE_SYM754 = null;
		Token IN_SYM755 = null;
		Token LPAREN756 = null;
		Token RPAREN758 = null;
		Token STORAGE_SYM759 = null;
		Token ENGINE_SYM760 = null;
		Token EQ_SYM761 = null;
		Token COMMENT_SYM763 = null;
		Token EQ_SYM764 = null;
		Token TEXT_STRING765 = null;
		Token DATA_SYM766 = null;
		Token DIRECTORY_SYM767 = null;
		Token EQ_SYM768 = null;
		Token TEXT_STRING769 = null;
		Token INDEX_SYM770 = null;
		Token DIRECTORY_SYM771 = null;
		Token EQ_SYM772 = null;
		Token TEXT_STRING773 = null;
		Token MAX_ROWS774 = null;
		Token EQ_SYM775 = null;
		Token INTEGER_NUM776 = null;
		Token MIN_ROWS777 = null;
		Token EQ_SYM778 = null;
		Token INTEGER_NUM779 = null;
		Token LPAREN780 = null;
		Token COMMA782 = null;
		Token RPAREN784 = null;
		MySQLParser.partition_name_return partition_name747 = null;

		MySQLParser.expression_list_return expression_list752 = null;

		MySQLParser.expression_list_return expression_list757 = null;

		MySQLParser.engine_name_return engine_name762 = null;

		MySQLParser.subpartition_definition_return subpartition_definition781 = null;

		MySQLParser.subpartition_definition_return subpartition_definition783 = null;

		Object PARTITION_SYM746_tree = null;
		Object VALUES748_tree = null;
		Object LESS_SYM749_tree = null;
		Object THAN_SYM750_tree = null;
		Object LPAREN751_tree = null;
		Object RPAREN753_tree = null;
		Object MAXVALUE_SYM754_tree = null;
		Object IN_SYM755_tree = null;
		Object LPAREN756_tree = null;
		Object RPAREN758_tree = null;
		Object STORAGE_SYM759_tree = null;
		Object ENGINE_SYM760_tree = null;
		Object EQ_SYM761_tree = null;
		Object COMMENT_SYM763_tree = null;
		Object EQ_SYM764_tree = null;
		Object TEXT_STRING765_tree = null;
		Object DATA_SYM766_tree = null;
		Object DIRECTORY_SYM767_tree = null;
		Object EQ_SYM768_tree = null;
		Object TEXT_STRING769_tree = null;
		Object INDEX_SYM770_tree = null;
		Object DIRECTORY_SYM771_tree = null;
		Object EQ_SYM772_tree = null;
		Object TEXT_STRING773_tree = null;
		Object MAX_ROWS774_tree = null;
		Object EQ_SYM775_tree = null;
		Object INTEGER_NUM776_tree = null;
		Object MIN_ROWS777_tree = null;
		Object EQ_SYM778_tree = null;
		Object INTEGER_NUM779_tree = null;
		Object LPAREN780_tree = null;
		Object COMMA782_tree = null;
		Object RPAREN784_tree = null;

		try {
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:423:21: (
			// PARTITION_SYM partition_name ( VALUES ( ( LESS_SYM THAN_SYM ( (
			// LPAREN expression_list RPAREN ) | MAXVALUE_SYM ) ) | ( IN_SYM
			// LPAREN expression_list RPAREN ) ) )? ( ( STORAGE_SYM )?
			// ENGINE_SYM ( EQ_SYM )? engine_name )? ( COMMENT_SYM ( EQ_SYM )?
			// TEXT_STRING )? ( DATA_SYM DIRECTORY_SYM ( EQ_SYM )? TEXT_STRING
			// )? ( INDEX_SYM DIRECTORY_SYM ( EQ_SYM )? TEXT_STRING )? (
			// MAX_ROWS ( EQ_SYM )? INTEGER_NUM )? ( MIN_ROWS ( EQ_SYM )?
			// INTEGER_NUM )? ( LPAREN subpartition_definition ( COMMA
			// subpartition_definition )* RPAREN )? )
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:424:2: PARTITION_SYM
			// partition_name ( VALUES ( ( LESS_SYM THAN_SYM ( ( LPAREN
			// expression_list RPAREN ) | MAXVALUE_SYM ) ) | ( IN_SYM LPAREN
			// expression_list RPAREN ) ) )? ( ( STORAGE_SYM )? ENGINE_SYM (
			// EQ_SYM )? engine_name )? ( COMMENT_SYM ( EQ_SYM )? TEXT_STRING )?
			// ( DATA_SYM DIRECTORY_SYM ( EQ_SYM )? TEXT_STRING )? ( INDEX_SYM
			// DIRECTORY_SYM ( EQ_SYM )? TEXT_STRING )? ( MAX_ROWS ( EQ_SYM )?
			// INTEGER_NUM )? ( MIN_ROWS ( EQ_SYM )? INTEGER_NUM )? ( LPAREN
			// subpartition_definition ( COMMA subpartition_definition )* RPAREN
			// )?
			{
				root_0 = (Object) adaptor.nil();

				PARTITION_SYM746 = (Token) match(input, PARTITION_SYM,
						FOLLOW_PARTITION_SYM_in_partition_definition4434);
				if (state.failed)
					return retval;
				if (state.backtracking == 0) {
					PARTITION_SYM746_tree = (Object) adaptor
							.create(PARTITION_SYM746);
					adaptor.addChild(root_0, PARTITION_SYM746_tree);
				}
				pushFollow(FOLLOW_partition_name_in_partition_definition4436);
				partition_name747 = partition_name();

				state._fsp--;
				if (state.failed)
					return retval;
				if (state.backtracking == 0)
					adaptor.addChild(root_0, partition_name747.getTree());
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:426:2: ( VALUES (
				// ( LESS_SYM THAN_SYM ( ( LPAREN expression_list RPAREN ) |
				// MAXVALUE_SYM ) ) | ( IN_SYM LPAREN expression_list RPAREN ) )
				// )?
				int alt301 = 2;
				int LA301_0 = input.LA(1);

				if ((LA301_0 == VALUES)) {
					alt301 = 1;
				}
				switch (alt301) {
				case 1:
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:427:3: VALUES ( (
				// LESS_SYM THAN_SYM ( ( LPAREN expression_list RPAREN ) |
				// MAXVALUE_SYM ) ) | ( IN_SYM LPAREN expression_list RPAREN ) )
				{
					VALUES748 = (Token) match(input, VALUES,
							FOLLOW_VALUES_in_partition_definition4445);
					if (state.failed)
						return retval;
					if (state.backtracking == 0) {
						VALUES748_tree = (Object) adaptor.create(VALUES748);
						adaptor.addChild(root_0, VALUES748_tree);
					}
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:428:3: ( (
					// LESS_SYM THAN_SYM ( ( LPAREN expression_list RPAREN ) |
					// MAXVALUE_SYM ) ) | ( IN_SYM LPAREN expression_list RPAREN
					// ) )
					int alt300 = 2;
					int LA300_0 = input.LA(1);

					if ((LA300_0 == LESS_SYM)) {
						alt300 = 1;
					} else if ((LA300_0 == IN_SYM)) {
						alt300 = 2;
					} else {
						if (state.backtracking > 0) {
							state.failed = true;
							return retval;
						}
						NoViableAltException nvae = new NoViableAltException(
								"", 300, 0, input);

						throw nvae;
					}
					switch (alt300) {
					case 1:
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:429:4: (
					// LESS_SYM THAN_SYM ( ( LPAREN expression_list RPAREN ) |
					// MAXVALUE_SYM ) )
					{
						// C:\\Users\\grand\\Desktop\\another\\MySQL.g:429:4: (
						// LESS_SYM THAN_SYM ( ( LPAREN expression_list RPAREN )
						// | MAXVALUE_SYM ) )
						// C:\\Users\\grand\\Desktop\\another\\MySQL.g:429:5:
						// LESS_SYM THAN_SYM ( ( LPAREN expression_list RPAREN )
						// | MAXVALUE_SYM )
						{
							LESS_SYM749 = (Token) match(input, LESS_SYM,
									FOLLOW_LESS_SYM_in_partition_definition4456);
							if (state.failed)
								return retval;
							if (state.backtracking == 0) {
								LESS_SYM749_tree = (Object) adaptor
										.create(LESS_SYM749);
								adaptor.addChild(root_0, LESS_SYM749_tree);
							}
							THAN_SYM750 = (Token) match(input, THAN_SYM,
									FOLLOW_THAN_SYM_in_partition_definition4458);
							if (state.failed)
								return retval;
							if (state.backtracking == 0) {
								THAN_SYM750_tree = (Object) adaptor
										.create(THAN_SYM750);
								adaptor.addChild(root_0, THAN_SYM750_tree);
							}
							// C:\\Users\\grand\\Desktop\\another\\MySQL.g:429:23:
							// ( ( LPAREN expression_list RPAREN ) |
							// MAXVALUE_SYM )
							int alt299 = 2;
							int LA299_0 = input.LA(1);

							if ((LA299_0 == LPAREN)) {
								alt299 = 1;
							} else if ((LA299_0 == MAXVALUE_SYM)) {
								alt299 = 2;
							} else {
								if (state.backtracking > 0) {
									state.failed = true;
									return retval;
								}
								NoViableAltException nvae = new NoViableAltException(
										"", 299, 0, input);

								throw nvae;
							}
							switch (alt299) {
							case 1:
							// C:\\Users\\grand\\Desktop\\another\\MySQL.g:429:25:
							// ( LPAREN expression_list RPAREN )
							{
								// C:\\Users\\grand\\Desktop\\another\\MySQL.g:429:25:
								// ( LPAREN expression_list RPAREN )
								// C:\\Users\\grand\\Desktop\\another\\MySQL.g:429:26:
								// LPAREN expression_list RPAREN
								{
									LPAREN751 = (Token) match(input, LPAREN,
											FOLLOW_LPAREN_in_partition_definition4463);
									if (state.failed)
										return retval;
									if (state.backtracking == 0) {
										LPAREN751_tree = (Object) adaptor
												.create(LPAREN751);
										adaptor.addChild(root_0, LPAREN751_tree);
									}
									pushFollow(FOLLOW_expression_list_in_partition_definition4465);
									expression_list752 = expression_list();

									state._fsp--;
									if (state.failed)
										return retval;
									if (state.backtracking == 0)
										adaptor.addChild(root_0,
												expression_list752.getTree());
									RPAREN753 = (Token) match(input, RPAREN,
											FOLLOW_RPAREN_in_partition_definition4467);
									if (state.failed)
										return retval;
									if (state.backtracking == 0) {
										RPAREN753_tree = (Object) adaptor
												.create(RPAREN753);
										adaptor.addChild(root_0, RPAREN753_tree);
									}

								}

							}
								break;
							case 2:
							// C:\\Users\\grand\\Desktop\\another\\MySQL.g:429:59:
							// MAXVALUE_SYM
							{
								MAXVALUE_SYM754 = (Token) match(input,
										MAXVALUE_SYM,
										FOLLOW_MAXVALUE_SYM_in_partition_definition4472);
								if (state.failed)
									return retval;
								if (state.backtracking == 0) {
									MAXVALUE_SYM754_tree = (Object) adaptor
											.create(MAXVALUE_SYM754);
									adaptor.addChild(root_0,
											MAXVALUE_SYM754_tree);
								}

							}
								break;

							}

						}

					}
						break;
					case 2:
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:431:4: (
					// IN_SYM LPAREN expression_list RPAREN )
					{
						// C:\\Users\\grand\\Desktop\\another\\MySQL.g:431:4: (
						// IN_SYM LPAREN expression_list RPAREN )
						// C:\\Users\\grand\\Desktop\\another\\MySQL.g:431:5:
						// IN_SYM LPAREN expression_list RPAREN
						{
							IN_SYM755 = (Token) match(input, IN_SYM,
									FOLLOW_IN_SYM_in_partition_definition4487);
							if (state.failed)
								return retval;
							if (state.backtracking == 0) {
								IN_SYM755_tree = (Object) adaptor
										.create(IN_SYM755);
								adaptor.addChild(root_0, IN_SYM755_tree);
							}
							LPAREN756 = (Token) match(input, LPAREN,
									FOLLOW_LPAREN_in_partition_definition4489);
							if (state.failed)
								return retval;
							if (state.backtracking == 0) {
								LPAREN756_tree = (Object) adaptor
										.create(LPAREN756);
								adaptor.addChild(root_0, LPAREN756_tree);
							}
							pushFollow(FOLLOW_expression_list_in_partition_definition4491);
							expression_list757 = expression_list();

							state._fsp--;
							if (state.failed)
								return retval;
							if (state.backtracking == 0)
								adaptor.addChild(root_0,
										expression_list757.getTree());
							RPAREN758 = (Token) match(input, RPAREN,
									FOLLOW_RPAREN_in_partition_definition4493);
							if (state.failed)
								return retval;
							if (state.backtracking == 0) {
								RPAREN758_tree = (Object) adaptor
										.create(RPAREN758);
								adaptor.addChild(root_0, RPAREN758_tree);
							}

						}

					}
						break;

					}

				}
					break;

				}

				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:435:2: ( (
				// STORAGE_SYM )? ENGINE_SYM ( EQ_SYM )? engine_name )?
				int alt304 = 2;
				int LA304_0 = input.LA(1);

				if ((LA304_0 == ENGINE_SYM || LA304_0 == STORAGE_SYM)) {
					alt304 = 1;
				}
				switch (alt304) {
				case 1:
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:435:3: (
				// STORAGE_SYM )? ENGINE_SYM ( EQ_SYM )? engine_name
				{
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:435:3: (
					// STORAGE_SYM )?
					int alt302 = 2;
					int LA302_0 = input.LA(1);

					if ((LA302_0 == STORAGE_SYM)) {
						alt302 = 1;
					}
					switch (alt302) {
					case 1:
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:435:4:
					// STORAGE_SYM
					{
						STORAGE_SYM759 = (Token) match(input, STORAGE_SYM,
								FOLLOW_STORAGE_SYM_in_partition_definition4509);
						if (state.failed)
							return retval;
						if (state.backtracking == 0) {
							STORAGE_SYM759_tree = (Object) adaptor
									.create(STORAGE_SYM759);
							adaptor.addChild(root_0, STORAGE_SYM759_tree);
						}

					}
						break;

					}

					ENGINE_SYM760 = (Token) match(input, ENGINE_SYM,
							FOLLOW_ENGINE_SYM_in_partition_definition4513);
					if (state.failed)
						return retval;
					if (state.backtracking == 0) {
						ENGINE_SYM760_tree = (Object) adaptor
								.create(ENGINE_SYM760);
						adaptor.addChild(root_0, ENGINE_SYM760_tree);
					}
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:435:29: (
					// EQ_SYM )?
					int alt303 = 2;
					int LA303_0 = input.LA(1);

					if ((LA303_0 == EQ_SYM)) {
						alt303 = 1;
					}
					switch (alt303) {
					case 1:
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:435:30:
					// EQ_SYM
					{
						EQ_SYM761 = (Token) match(input, EQ_SYM,
								FOLLOW_EQ_SYM_in_partition_definition4516);
						if (state.failed)
							return retval;
						if (state.backtracking == 0) {
							EQ_SYM761_tree = (Object) adaptor.create(EQ_SYM761);
							adaptor.addChild(root_0, EQ_SYM761_tree);
						}

					}
						break;

					}

					pushFollow(FOLLOW_engine_name_in_partition_definition4520);
					engine_name762 = engine_name();

					state._fsp--;
					if (state.failed)
						return retval;
					if (state.backtracking == 0)
						adaptor.addChild(root_0, engine_name762.getTree());

				}
					break;

				}

				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:436:2: (
				// COMMENT_SYM ( EQ_SYM )? TEXT_STRING )?
				int alt306 = 2;
				int LA306_0 = input.LA(1);

				if ((LA306_0 == COMMENT_SYM)) {
					alt306 = 1;
				}
				switch (alt306) {
				case 1:
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:436:3:
				// COMMENT_SYM ( EQ_SYM )? TEXT_STRING
				{
					COMMENT_SYM763 = (Token) match(input, COMMENT_SYM,
							FOLLOW_COMMENT_SYM_in_partition_definition4526);
					if (state.failed)
						return retval;
					if (state.backtracking == 0) {
						COMMENT_SYM763_tree = (Object) adaptor
								.create(COMMENT_SYM763);
						adaptor.addChild(root_0, COMMENT_SYM763_tree);
					}
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:436:15: (
					// EQ_SYM )?
					int alt305 = 2;
					int LA305_0 = input.LA(1);

					if ((LA305_0 == EQ_SYM)) {
						alt305 = 1;
					}
					switch (alt305) {
					case 1:
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:436:16:
					// EQ_SYM
					{
						EQ_SYM764 = (Token) match(input, EQ_SYM,
								FOLLOW_EQ_SYM_in_partition_definition4529);
						if (state.failed)
							return retval;
						if (state.backtracking == 0) {
							EQ_SYM764_tree = (Object) adaptor.create(EQ_SYM764);
							adaptor.addChild(root_0, EQ_SYM764_tree);
						}

					}
						break;

					}

					TEXT_STRING765 = (Token) match(input, TEXT_STRING,
							FOLLOW_TEXT_STRING_in_partition_definition4533);
					if (state.failed)
						return retval;
					if (state.backtracking == 0) {
						TEXT_STRING765_tree = (Object) adaptor
								.create(TEXT_STRING765);
						adaptor.addChild(root_0, TEXT_STRING765_tree);
					}

				}
					break;

				}

				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:437:2: ( DATA_SYM
				// DIRECTORY_SYM ( EQ_SYM )? TEXT_STRING )?
				int alt308 = 2;
				int LA308_0 = input.LA(1);

				if ((LA308_0 == DATA_SYM)) {
					alt308 = 1;
				}
				switch (alt308) {
				case 1:
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:437:3: DATA_SYM
				// DIRECTORY_SYM ( EQ_SYM )? TEXT_STRING
				{
					DATA_SYM766 = (Token) match(input, DATA_SYM,
							FOLLOW_DATA_SYM_in_partition_definition4540);
					if (state.failed)
						return retval;
					if (state.backtracking == 0) {
						DATA_SYM766_tree = (Object) adaptor.create(DATA_SYM766);
						adaptor.addChild(root_0, DATA_SYM766_tree);
					}
					DIRECTORY_SYM767 = (Token) match(input, DIRECTORY_SYM,
							FOLLOW_DIRECTORY_SYM_in_partition_definition4542);
					if (state.failed)
						return retval;
					if (state.backtracking == 0) {
						DIRECTORY_SYM767_tree = (Object) adaptor
								.create(DIRECTORY_SYM767);
						adaptor.addChild(root_0, DIRECTORY_SYM767_tree);
					}
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:437:26: (
					// EQ_SYM )?
					int alt307 = 2;
					int LA307_0 = input.LA(1);

					if ((LA307_0 == EQ_SYM)) {
						alt307 = 1;
					}
					switch (alt307) {
					case 1:
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:437:27:
					// EQ_SYM
					{
						EQ_SYM768 = (Token) match(input, EQ_SYM,
								FOLLOW_EQ_SYM_in_partition_definition4545);
						if (state.failed)
							return retval;
						if (state.backtracking == 0) {
							EQ_SYM768_tree = (Object) adaptor.create(EQ_SYM768);
							adaptor.addChild(root_0, EQ_SYM768_tree);
						}

					}
						break;

					}

					TEXT_STRING769 = (Token) match(input, TEXT_STRING,
							FOLLOW_TEXT_STRING_in_partition_definition4549);
					if (state.failed)
						return retval;
					if (state.backtracking == 0) {
						TEXT_STRING769_tree = (Object) adaptor
								.create(TEXT_STRING769);
						adaptor.addChild(root_0, TEXT_STRING769_tree);
					}

				}
					break;

				}

				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:438:2: (
				// INDEX_SYM DIRECTORY_SYM ( EQ_SYM )? TEXT_STRING )?
				int alt310 = 2;
				int LA310_0 = input.LA(1);

				if ((LA310_0 == INDEX_SYM)) {
					alt310 = 1;
				}
				switch (alt310) {
				case 1:
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:438:3: INDEX_SYM
				// DIRECTORY_SYM ( EQ_SYM )? TEXT_STRING
				{
					INDEX_SYM770 = (Token) match(input, INDEX_SYM,
							FOLLOW_INDEX_SYM_in_partition_definition4555);
					if (state.failed)
						return retval;
					if (state.backtracking == 0) {
						INDEX_SYM770_tree = (Object) adaptor
								.create(INDEX_SYM770);
						adaptor.addChild(root_0, INDEX_SYM770_tree);
					}
					DIRECTORY_SYM771 = (Token) match(input, DIRECTORY_SYM,
							FOLLOW_DIRECTORY_SYM_in_partition_definition4557);
					if (state.failed)
						return retval;
					if (state.backtracking == 0) {
						DIRECTORY_SYM771_tree = (Object) adaptor
								.create(DIRECTORY_SYM771);
						adaptor.addChild(root_0, DIRECTORY_SYM771_tree);
					}
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:438:27: (
					// EQ_SYM )?
					int alt309 = 2;
					int LA309_0 = input.LA(1);

					if ((LA309_0 == EQ_SYM)) {
						alt309 = 1;
					}
					switch (alt309) {
					case 1:
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:438:28:
					// EQ_SYM
					{
						EQ_SYM772 = (Token) match(input, EQ_SYM,
								FOLLOW_EQ_SYM_in_partition_definition4560);
						if (state.failed)
							return retval;
						if (state.backtracking == 0) {
							EQ_SYM772_tree = (Object) adaptor.create(EQ_SYM772);
							adaptor.addChild(root_0, EQ_SYM772_tree);
						}

					}
						break;

					}

					TEXT_STRING773 = (Token) match(input, TEXT_STRING,
							FOLLOW_TEXT_STRING_in_partition_definition4564);
					if (state.failed)
						return retval;
					if (state.backtracking == 0) {
						TEXT_STRING773_tree = (Object) adaptor
								.create(TEXT_STRING773);
						adaptor.addChild(root_0, TEXT_STRING773_tree);
					}

				}
					break;

				}

				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:439:2: ( MAX_ROWS
				// ( EQ_SYM )? INTEGER_NUM )?
				int alt312 = 2;
				int LA312_0 = input.LA(1);

				if ((LA312_0 == MAX_ROWS)) {
					alt312 = 1;
				}
				switch (alt312) {
				case 1:
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:439:3: MAX_ROWS (
				// EQ_SYM )? INTEGER_NUM
				{
					MAX_ROWS774 = (Token) match(input, MAX_ROWS,
							FOLLOW_MAX_ROWS_in_partition_definition4570);
					if (state.failed)
						return retval;
					if (state.backtracking == 0) {
						MAX_ROWS774_tree = (Object) adaptor.create(MAX_ROWS774);
						adaptor.addChild(root_0, MAX_ROWS774_tree);
					}
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:439:12: (
					// EQ_SYM )?
					int alt311 = 2;
					int LA311_0 = input.LA(1);

					if ((LA311_0 == EQ_SYM)) {
						alt311 = 1;
					}
					switch (alt311) {
					case 1:
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:439:13:
					// EQ_SYM
					{
						EQ_SYM775 = (Token) match(input, EQ_SYM,
								FOLLOW_EQ_SYM_in_partition_definition4573);
						if (state.failed)
							return retval;
						if (state.backtracking == 0) {
							EQ_SYM775_tree = (Object) adaptor.create(EQ_SYM775);
							adaptor.addChild(root_0, EQ_SYM775_tree);
						}

					}
						break;

					}

					INTEGER_NUM776 = (Token) match(input, INTEGER_NUM,
							FOLLOW_INTEGER_NUM_in_partition_definition4577);
					if (state.failed)
						return retval;
					if (state.backtracking == 0) {
						INTEGER_NUM776_tree = (Object) adaptor
								.create(INTEGER_NUM776);
						adaptor.addChild(root_0, INTEGER_NUM776_tree);
					}

				}
					break;

				}

				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:440:2: ( MIN_ROWS
				// ( EQ_SYM )? INTEGER_NUM )?
				int alt314 = 2;
				int LA314_0 = input.LA(1);

				if ((LA314_0 == MIN_ROWS)) {
					alt314 = 1;
				}
				switch (alt314) {
				case 1:
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:440:3: MIN_ROWS (
				// EQ_SYM )? INTEGER_NUM
				{
					MIN_ROWS777 = (Token) match(input, MIN_ROWS,
							FOLLOW_MIN_ROWS_in_partition_definition4583);
					if (state.failed)
						return retval;
					if (state.backtracking == 0) {
						MIN_ROWS777_tree = (Object) adaptor.create(MIN_ROWS777);
						adaptor.addChild(root_0, MIN_ROWS777_tree);
					}
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:440:12: (
					// EQ_SYM )?
					int alt313 = 2;
					int LA313_0 = input.LA(1);

					if ((LA313_0 == EQ_SYM)) {
						alt313 = 1;
					}
					switch (alt313) {
					case 1:
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:440:13:
					// EQ_SYM
					{
						EQ_SYM778 = (Token) match(input, EQ_SYM,
								FOLLOW_EQ_SYM_in_partition_definition4586);
						if (state.failed)
							return retval;
						if (state.backtracking == 0) {
							EQ_SYM778_tree = (Object) adaptor.create(EQ_SYM778);
							adaptor.addChild(root_0, EQ_SYM778_tree);
						}

					}
						break;

					}

					INTEGER_NUM779 = (Token) match(input, INTEGER_NUM,
							FOLLOW_INTEGER_NUM_in_partition_definition4590);
					if (state.failed)
						return retval;
					if (state.backtracking == 0) {
						INTEGER_NUM779_tree = (Object) adaptor
								.create(INTEGER_NUM779);
						adaptor.addChild(root_0, INTEGER_NUM779_tree);
					}

				}
					break;

				}

				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:441:2: ( LPAREN
				// subpartition_definition ( COMMA subpartition_definition )*
				// RPAREN )?
				int alt316 = 2;
				int LA316_0 = input.LA(1);

				if ((LA316_0 == LPAREN)) {
					alt316 = 1;
				}
				switch (alt316) {
				case 1:
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:441:3: LPAREN
				// subpartition_definition ( COMMA subpartition_definition )*
				// RPAREN
				{
					LPAREN780 = (Token) match(input, LPAREN,
							FOLLOW_LPAREN_in_partition_definition4596);
					if (state.failed)
						return retval;
					if (state.backtracking == 0) {
						LPAREN780_tree = (Object) adaptor.create(LPAREN780);
						adaptor.addChild(root_0, LPAREN780_tree);
					}
					pushFollow(FOLLOW_subpartition_definition_in_partition_definition4598);
					subpartition_definition781 = subpartition_definition();

					state._fsp--;
					if (state.failed)
						return retval;
					if (state.backtracking == 0)
						adaptor.addChild(root_0,
								subpartition_definition781.getTree());
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:441:34: (
					// COMMA subpartition_definition )*
					loop315: do {
						int alt315 = 2;
						int LA315_0 = input.LA(1);

						if ((LA315_0 == COMMA)) {
							alt315 = 1;
						}

						switch (alt315) {
						case 1:
						// C:\\Users\\grand\\Desktop\\another\\MySQL.g:441:35:
						// COMMA subpartition_definition
						{
							COMMA782 = (Token) match(input, COMMA,
									FOLLOW_COMMA_in_partition_definition4601);
							if (state.failed)
								return retval;
							if (state.backtracking == 0) {
								COMMA782_tree = (Object) adaptor
										.create(COMMA782);
								adaptor.addChild(root_0, COMMA782_tree);
							}
							pushFollow(FOLLOW_subpartition_definition_in_partition_definition4604);
							subpartition_definition783 = subpartition_definition();

							state._fsp--;
							if (state.failed)
								return retval;
							if (state.backtracking == 0)
								adaptor.addChild(root_0,
										subpartition_definition783.getTree());

						}
							break;

						default:
							break loop315;
						}
					} while (true);

					RPAREN784 = (Token) match(input, RPAREN,
							FOLLOW_RPAREN_in_partition_definition4608);
					if (state.failed)
						return retval;
					if (state.backtracking == 0) {
						RPAREN784_tree = (Object) adaptor.create(RPAREN784);
						adaptor.addChild(root_0, RPAREN784_tree);
					}

				}
					break;

				}

			}

			retval.stop = input.LT(-1);

			if (state.backtracking == 0) {

				retval.tree = (Object) adaptor.rulePostProcessing(root_0);
				adaptor.setTokenBoundaries(retval.tree, retval.start,
						retval.stop);
			}
		} catch (RecognitionException re) {
			reportError(re);
			recover(input, re);
			retval.tree = (Object) adaptor.errorNode(input, retval.start,
					input.LT(-1), re);

		} finally {
		}
		return retval;
	}

	// $ANTLR end "partition_definition"

	public static class subpartition_definition_return extends
			ParserRuleReturnScope {
		Object tree;

		public Object getTree() {
			return tree;
		}
	};

	// $ANTLR start "subpartition_definition"
	// C:\\Users\\grand\\Desktop\\another\\MySQL.g:444:1:
	// subpartition_definition : SUBPARTITION_SYM partition_logical_name ( (
	// STORAGE_SYM )? ENGINE_SYM ( EQ_SYM )? engine_name )? ( COMMENT_SYM (
	// EQ_SYM )? TEXT_STRING )? ( DATA_SYM DIRECTORY_SYM ( EQ_SYM )? TEXT_STRING
	// )? ( INDEX_SYM DIRECTORY_SYM ( EQ_SYM )? TEXT_STRING )? ( MAX_ROWS (
	// EQ_SYM )? INTEGER_NUM )? ( MIN_ROWS ( EQ_SYM )? INTEGER_NUM )? ;
	public final MySQLParser.subpartition_definition_return subpartition_definition()
			throws RecognitionException {
		MySQLParser.subpartition_definition_return retval = new MySQLParser.subpartition_definition_return();
		retval.start = input.LT(1);

		Object root_0 = null;

		Token SUBPARTITION_SYM785 = null;
		Token STORAGE_SYM787 = null;
		Token ENGINE_SYM788 = null;
		Token EQ_SYM789 = null;
		Token COMMENT_SYM791 = null;
		Token EQ_SYM792 = null;
		Token TEXT_STRING793 = null;
		Token DATA_SYM794 = null;
		Token DIRECTORY_SYM795 = null;
		Token EQ_SYM796 = null;
		Token TEXT_STRING797 = null;
		Token INDEX_SYM798 = null;
		Token DIRECTORY_SYM799 = null;
		Token EQ_SYM800 = null;
		Token TEXT_STRING801 = null;
		Token MAX_ROWS802 = null;
		Token EQ_SYM803 = null;
		Token INTEGER_NUM804 = null;
		Token MIN_ROWS805 = null;
		Token EQ_SYM806 = null;
		Token INTEGER_NUM807 = null;
		MySQLParser.partition_logical_name_return partition_logical_name786 = null;

		MySQLParser.engine_name_return engine_name790 = null;

		Object SUBPARTITION_SYM785_tree = null;
		Object STORAGE_SYM787_tree = null;
		Object ENGINE_SYM788_tree = null;
		Object EQ_SYM789_tree = null;
		Object COMMENT_SYM791_tree = null;
		Object EQ_SYM792_tree = null;
		Object TEXT_STRING793_tree = null;
		Object DATA_SYM794_tree = null;
		Object DIRECTORY_SYM795_tree = null;
		Object EQ_SYM796_tree = null;
		Object TEXT_STRING797_tree = null;
		Object INDEX_SYM798_tree = null;
		Object DIRECTORY_SYM799_tree = null;
		Object EQ_SYM800_tree = null;
		Object TEXT_STRING801_tree = null;
		Object MAX_ROWS802_tree = null;
		Object EQ_SYM803_tree = null;
		Object INTEGER_NUM804_tree = null;
		Object MIN_ROWS805_tree = null;
		Object EQ_SYM806_tree = null;
		Object INTEGER_NUM807_tree = null;

		try {
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:444:24: (
			// SUBPARTITION_SYM partition_logical_name ( ( STORAGE_SYM )?
			// ENGINE_SYM ( EQ_SYM )? engine_name )? ( COMMENT_SYM ( EQ_SYM )?
			// TEXT_STRING )? ( DATA_SYM DIRECTORY_SYM ( EQ_SYM )? TEXT_STRING
			// )? ( INDEX_SYM DIRECTORY_SYM ( EQ_SYM )? TEXT_STRING )? (
			// MAX_ROWS ( EQ_SYM )? INTEGER_NUM )? ( MIN_ROWS ( EQ_SYM )?
			// INTEGER_NUM )? )
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:445:2:
			// SUBPARTITION_SYM partition_logical_name ( ( STORAGE_SYM )?
			// ENGINE_SYM ( EQ_SYM )? engine_name )? ( COMMENT_SYM ( EQ_SYM )?
			// TEXT_STRING )? ( DATA_SYM DIRECTORY_SYM ( EQ_SYM )? TEXT_STRING
			// )? ( INDEX_SYM DIRECTORY_SYM ( EQ_SYM )? TEXT_STRING )? (
			// MAX_ROWS ( EQ_SYM )? INTEGER_NUM )? ( MIN_ROWS ( EQ_SYM )?
			// INTEGER_NUM )?
			{
				root_0 = (Object) adaptor.nil();

				SUBPARTITION_SYM785 = (Token) match(input, SUBPARTITION_SYM,
						FOLLOW_SUBPARTITION_SYM_in_subpartition_definition4619);
				if (state.failed)
					return retval;
				if (state.backtracking == 0) {
					SUBPARTITION_SYM785_tree = (Object) adaptor
							.create(SUBPARTITION_SYM785);
					adaptor.addChild(root_0, SUBPARTITION_SYM785_tree);
				}
				pushFollow(FOLLOW_partition_logical_name_in_subpartition_definition4621);
				partition_logical_name786 = partition_logical_name();

				state._fsp--;
				if (state.failed)
					return retval;
				if (state.backtracking == 0)
					adaptor.addChild(root_0,
							partition_logical_name786.getTree());
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:446:2: ( (
				// STORAGE_SYM )? ENGINE_SYM ( EQ_SYM )? engine_name )?
				int alt319 = 2;
				int LA319_0 = input.LA(1);

				if ((LA319_0 == ENGINE_SYM || LA319_0 == STORAGE_SYM)) {
					alt319 = 1;
				}
				switch (alt319) {
				case 1:
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:446:3: (
				// STORAGE_SYM )? ENGINE_SYM ( EQ_SYM )? engine_name
				{
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:446:3: (
					// STORAGE_SYM )?
					int alt317 = 2;
					int LA317_0 = input.LA(1);

					if ((LA317_0 == STORAGE_SYM)) {
						alt317 = 1;
					}
					switch (alt317) {
					case 1:
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:446:4:
					// STORAGE_SYM
					{
						STORAGE_SYM787 = (Token) match(input, STORAGE_SYM,
								FOLLOW_STORAGE_SYM_in_subpartition_definition4626);
						if (state.failed)
							return retval;
						if (state.backtracking == 0) {
							STORAGE_SYM787_tree = (Object) adaptor
									.create(STORAGE_SYM787);
							adaptor.addChild(root_0, STORAGE_SYM787_tree);
						}

					}
						break;

					}

					ENGINE_SYM788 = (Token) match(input, ENGINE_SYM,
							FOLLOW_ENGINE_SYM_in_subpartition_definition4630);
					if (state.failed)
						return retval;
					if (state.backtracking == 0) {
						ENGINE_SYM788_tree = (Object) adaptor
								.create(ENGINE_SYM788);
						adaptor.addChild(root_0, ENGINE_SYM788_tree);
					}
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:446:29: (
					// EQ_SYM )?
					int alt318 = 2;
					int LA318_0 = input.LA(1);

					if ((LA318_0 == EQ_SYM)) {
						alt318 = 1;
					}
					switch (alt318) {
					case 1:
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:446:30:
					// EQ_SYM
					{
						EQ_SYM789 = (Token) match(input, EQ_SYM,
								FOLLOW_EQ_SYM_in_subpartition_definition4633);
						if (state.failed)
							return retval;
						if (state.backtracking == 0) {
							EQ_SYM789_tree = (Object) adaptor.create(EQ_SYM789);
							adaptor.addChild(root_0, EQ_SYM789_tree);
						}

					}
						break;

					}

					pushFollow(FOLLOW_engine_name_in_subpartition_definition4637);
					engine_name790 = engine_name();

					state._fsp--;
					if (state.failed)
						return retval;
					if (state.backtracking == 0)
						adaptor.addChild(root_0, engine_name790.getTree());

				}
					break;

				}

				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:447:2: (
				// COMMENT_SYM ( EQ_SYM )? TEXT_STRING )?
				int alt321 = 2;
				int LA321_0 = input.LA(1);

				if ((LA321_0 == COMMENT_SYM)) {
					alt321 = 1;
				}
				switch (alt321) {
				case 1:
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:447:3:
				// COMMENT_SYM ( EQ_SYM )? TEXT_STRING
				{
					COMMENT_SYM791 = (Token) match(input, COMMENT_SYM,
							FOLLOW_COMMENT_SYM_in_subpartition_definition4643);
					if (state.failed)
						return retval;
					if (state.backtracking == 0) {
						COMMENT_SYM791_tree = (Object) adaptor
								.create(COMMENT_SYM791);
						adaptor.addChild(root_0, COMMENT_SYM791_tree);
					}
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:447:15: (
					// EQ_SYM )?
					int alt320 = 2;
					int LA320_0 = input.LA(1);

					if ((LA320_0 == EQ_SYM)) {
						alt320 = 1;
					}
					switch (alt320) {
					case 1:
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:447:16:
					// EQ_SYM
					{
						EQ_SYM792 = (Token) match(input, EQ_SYM,
								FOLLOW_EQ_SYM_in_subpartition_definition4646);
						if (state.failed)
							return retval;
						if (state.backtracking == 0) {
							EQ_SYM792_tree = (Object) adaptor.create(EQ_SYM792);
							adaptor.addChild(root_0, EQ_SYM792_tree);
						}

					}
						break;

					}

					TEXT_STRING793 = (Token) match(input, TEXT_STRING,
							FOLLOW_TEXT_STRING_in_subpartition_definition4650);
					if (state.failed)
						return retval;
					if (state.backtracking == 0) {
						TEXT_STRING793_tree = (Object) adaptor
								.create(TEXT_STRING793);
						adaptor.addChild(root_0, TEXT_STRING793_tree);
					}

				}
					break;

				}

				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:448:2: ( DATA_SYM
				// DIRECTORY_SYM ( EQ_SYM )? TEXT_STRING )?
				int alt323 = 2;
				int LA323_0 = input.LA(1);

				if ((LA323_0 == DATA_SYM)) {
					alt323 = 1;
				}
				switch (alt323) {
				case 1:
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:448:3: DATA_SYM
				// DIRECTORY_SYM ( EQ_SYM )? TEXT_STRING
				{
					DATA_SYM794 = (Token) match(input, DATA_SYM,
							FOLLOW_DATA_SYM_in_subpartition_definition4657);
					if (state.failed)
						return retval;
					if (state.backtracking == 0) {
						DATA_SYM794_tree = (Object) adaptor.create(DATA_SYM794);
						adaptor.addChild(root_0, DATA_SYM794_tree);
					}
					DIRECTORY_SYM795 = (Token) match(input, DIRECTORY_SYM,
							FOLLOW_DIRECTORY_SYM_in_subpartition_definition4659);
					if (state.failed)
						return retval;
					if (state.backtracking == 0) {
						DIRECTORY_SYM795_tree = (Object) adaptor
								.create(DIRECTORY_SYM795);
						adaptor.addChild(root_0, DIRECTORY_SYM795_tree);
					}
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:448:26: (
					// EQ_SYM )?
					int alt322 = 2;
					int LA322_0 = input.LA(1);

					if ((LA322_0 == EQ_SYM)) {
						alt322 = 1;
					}
					switch (alt322) {
					case 1:
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:448:27:
					// EQ_SYM
					{
						EQ_SYM796 = (Token) match(input, EQ_SYM,
								FOLLOW_EQ_SYM_in_subpartition_definition4662);
						if (state.failed)
							return retval;
						if (state.backtracking == 0) {
							EQ_SYM796_tree = (Object) adaptor.create(EQ_SYM796);
							adaptor.addChild(root_0, EQ_SYM796_tree);
						}

					}
						break;

					}

					TEXT_STRING797 = (Token) match(input, TEXT_STRING,
							FOLLOW_TEXT_STRING_in_subpartition_definition4666);
					if (state.failed)
						return retval;
					if (state.backtracking == 0) {
						TEXT_STRING797_tree = (Object) adaptor
								.create(TEXT_STRING797);
						adaptor.addChild(root_0, TEXT_STRING797_tree);
					}

				}
					break;

				}

				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:449:2: (
				// INDEX_SYM DIRECTORY_SYM ( EQ_SYM )? TEXT_STRING )?
				int alt325 = 2;
				int LA325_0 = input.LA(1);

				if ((LA325_0 == INDEX_SYM)) {
					alt325 = 1;
				}
				switch (alt325) {
				case 1:
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:449:3: INDEX_SYM
				// DIRECTORY_SYM ( EQ_SYM )? TEXT_STRING
				{
					INDEX_SYM798 = (Token) match(input, INDEX_SYM,
							FOLLOW_INDEX_SYM_in_subpartition_definition4672);
					if (state.failed)
						return retval;
					if (state.backtracking == 0) {
						INDEX_SYM798_tree = (Object) adaptor
								.create(INDEX_SYM798);
						adaptor.addChild(root_0, INDEX_SYM798_tree);
					}
					DIRECTORY_SYM799 = (Token) match(input, DIRECTORY_SYM,
							FOLLOW_DIRECTORY_SYM_in_subpartition_definition4674);
					if (state.failed)
						return retval;
					if (state.backtracking == 0) {
						DIRECTORY_SYM799_tree = (Object) adaptor
								.create(DIRECTORY_SYM799);
						adaptor.addChild(root_0, DIRECTORY_SYM799_tree);
					}
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:449:27: (
					// EQ_SYM )?
					int alt324 = 2;
					int LA324_0 = input.LA(1);

					if ((LA324_0 == EQ_SYM)) {
						alt324 = 1;
					}
					switch (alt324) {
					case 1:
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:449:28:
					// EQ_SYM
					{
						EQ_SYM800 = (Token) match(input, EQ_SYM,
								FOLLOW_EQ_SYM_in_subpartition_definition4677);
						if (state.failed)
							return retval;
						if (state.backtracking == 0) {
							EQ_SYM800_tree = (Object) adaptor.create(EQ_SYM800);
							adaptor.addChild(root_0, EQ_SYM800_tree);
						}

					}
						break;

					}

					TEXT_STRING801 = (Token) match(input, TEXT_STRING,
							FOLLOW_TEXT_STRING_in_subpartition_definition4681);
					if (state.failed)
						return retval;
					if (state.backtracking == 0) {
						TEXT_STRING801_tree = (Object) adaptor
								.create(TEXT_STRING801);
						adaptor.addChild(root_0, TEXT_STRING801_tree);
					}

				}
					break;

				}

				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:450:2: ( MAX_ROWS
				// ( EQ_SYM )? INTEGER_NUM )?
				int alt327 = 2;
				int LA327_0 = input.LA(1);

				if ((LA327_0 == MAX_ROWS)) {
					alt327 = 1;
				}
				switch (alt327) {
				case 1:
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:450:3: MAX_ROWS (
				// EQ_SYM )? INTEGER_NUM
				{
					MAX_ROWS802 = (Token) match(input, MAX_ROWS,
							FOLLOW_MAX_ROWS_in_subpartition_definition4687);
					if (state.failed)
						return retval;
					if (state.backtracking == 0) {
						MAX_ROWS802_tree = (Object) adaptor.create(MAX_ROWS802);
						adaptor.addChild(root_0, MAX_ROWS802_tree);
					}
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:450:12: (
					// EQ_SYM )?
					int alt326 = 2;
					int LA326_0 = input.LA(1);

					if ((LA326_0 == EQ_SYM)) {
						alt326 = 1;
					}
					switch (alt326) {
					case 1:
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:450:13:
					// EQ_SYM
					{
						EQ_SYM803 = (Token) match(input, EQ_SYM,
								FOLLOW_EQ_SYM_in_subpartition_definition4690);
						if (state.failed)
							return retval;
						if (state.backtracking == 0) {
							EQ_SYM803_tree = (Object) adaptor.create(EQ_SYM803);
							adaptor.addChild(root_0, EQ_SYM803_tree);
						}

					}
						break;

					}

					INTEGER_NUM804 = (Token) match(input, INTEGER_NUM,
							FOLLOW_INTEGER_NUM_in_subpartition_definition4694);
					if (state.failed)
						return retval;
					if (state.backtracking == 0) {
						INTEGER_NUM804_tree = (Object) adaptor
								.create(INTEGER_NUM804);
						adaptor.addChild(root_0, INTEGER_NUM804_tree);
					}

				}
					break;

				}

				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:451:2: ( MIN_ROWS
				// ( EQ_SYM )? INTEGER_NUM )?
				int alt329 = 2;
				int LA329_0 = input.LA(1);

				if ((LA329_0 == MIN_ROWS)) {
					alt329 = 1;
				}
				switch (alt329) {
				case 1:
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:451:3: MIN_ROWS (
				// EQ_SYM )? INTEGER_NUM
				{
					MIN_ROWS805 = (Token) match(input, MIN_ROWS,
							FOLLOW_MIN_ROWS_in_subpartition_definition4700);
					if (state.failed)
						return retval;
					if (state.backtracking == 0) {
						MIN_ROWS805_tree = (Object) adaptor.create(MIN_ROWS805);
						adaptor.addChild(root_0, MIN_ROWS805_tree);
					}
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:451:12: (
					// EQ_SYM )?
					int alt328 = 2;
					int LA328_0 = input.LA(1);

					if ((LA328_0 == EQ_SYM)) {
						alt328 = 1;
					}
					switch (alt328) {
					case 1:
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:451:13:
					// EQ_SYM
					{
						EQ_SYM806 = (Token) match(input, EQ_SYM,
								FOLLOW_EQ_SYM_in_subpartition_definition4703);
						if (state.failed)
							return retval;
						if (state.backtracking == 0) {
							EQ_SYM806_tree = (Object) adaptor.create(EQ_SYM806);
							adaptor.addChild(root_0, EQ_SYM806_tree);
						}

					}
						break;

					}

					INTEGER_NUM807 = (Token) match(input, INTEGER_NUM,
							FOLLOW_INTEGER_NUM_in_subpartition_definition4707);
					if (state.failed)
						return retval;
					if (state.backtracking == 0) {
						INTEGER_NUM807_tree = (Object) adaptor
								.create(INTEGER_NUM807);
						adaptor.addChild(root_0, INTEGER_NUM807_tree);
					}

				}
					break;

				}

			}

			retval.stop = input.LT(-1);

			if (state.backtracking == 0) {

				retval.tree = (Object) adaptor.rulePostProcessing(root_0);
				adaptor.setTokenBoundaries(retval.tree, retval.start,
						retval.stop);
			}
		} catch (RecognitionException re) {
			reportError(re);
			recover(input, re);
			retval.tree = (Object) adaptor.errorNode(input, retval.start,
					input.LT(-1), re);

		} finally {
		}
		return retval;
	}

	// $ANTLR end "subpartition_definition"

	public static class length_return extends ParserRuleReturnScope {
		Object tree;

		public Object getTree() {
			return tree;
		}
	};

	// $ANTLR start "length"
	// C:\\Users\\grand\\Desktop\\another\\MySQL.g:454:1: length : INTEGER_NUM ;
	public final MySQLParser.length_return length() throws RecognitionException {
		MySQLParser.length_return retval = new MySQLParser.length_return();
		retval.start = input.LT(1);

		Object root_0 = null;

		Token INTEGER_NUM808 = null;

		Object INTEGER_NUM808_tree = null;

		try {
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:454:8: ( INTEGER_NUM
			// )
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:454:10: INTEGER_NUM
			{
				root_0 = (Object) adaptor.nil();

				INTEGER_NUM808 = (Token) match(input, INTEGER_NUM,
						FOLLOW_INTEGER_NUM_in_length4718);
				if (state.failed)
					return retval;
				if (state.backtracking == 0) {
					INTEGER_NUM808_tree = (Object) adaptor
							.create(INTEGER_NUM808);
					adaptor.addChild(root_0, INTEGER_NUM808_tree);
				}

			}

			retval.stop = input.LT(-1);

			if (state.backtracking == 0) {

				retval.tree = (Object) adaptor.rulePostProcessing(root_0);
				adaptor.setTokenBoundaries(retval.tree, retval.start,
						retval.stop);
			}
		} catch (RecognitionException re) {
			reportError(re);
			recover(input, re);
			retval.tree = (Object) adaptor.errorNode(input, retval.start,
					input.LT(-1), re);

		} finally {
		}
		return retval;
	}

	// $ANTLR end "length"

	public static class alter_table_statement_return extends
			ParserRuleReturnScope {
		Object tree;

		public Object getTree() {
			return tree;
		}
	};

	// $ANTLR start "alter_table_statement"
	// C:\\Users\\grand\\Desktop\\another\\MySQL.g:458:1: alter_table_statement
	// : ALTER ( IGNORE_SYM )? TABLE table_name ( alter_table_specification (
	// COMMA alter_table_specification )* )? ( partition_options )? -> ^( ALTER
	// table_name ) ( alter_table_specification )+ ;
	public final MySQLParser.alter_table_statement_return alter_table_statement()
			throws RecognitionException {
		MySQLParser.alter_table_statement_return retval = new MySQLParser.alter_table_statement_return();
		retval.start = input.LT(1);

		Object root_0 = null;

		Token ALTER809 = null;
		Token IGNORE_SYM810 = null;
		Token TABLE811 = null;
		Token COMMA814 = null;
		MySQLParser.table_name_return table_name812 = null;

		MySQLParser.alter_table_specification_return alter_table_specification813 = null;

		MySQLParser.alter_table_specification_return alter_table_specification815 = null;

		MySQLParser.partition_options_return partition_options816 = null;

		Object ALTER809_tree = null;
		Object IGNORE_SYM810_tree = null;
		Object TABLE811_tree = null;
		Object COMMA814_tree = null;
		RewriteRuleTokenStream stream_TABLE = new RewriteRuleTokenStream(
				adaptor, "token TABLE");
		RewriteRuleTokenStream stream_ALTER = new RewriteRuleTokenStream(
				adaptor, "token ALTER");
		RewriteRuleTokenStream stream_COMMA = new RewriteRuleTokenStream(
				adaptor, "token COMMA");
		RewriteRuleTokenStream stream_IGNORE_SYM = new RewriteRuleTokenStream(
				adaptor, "token IGNORE_SYM");
		RewriteRuleSubtreeStream stream_table_name = new RewriteRuleSubtreeStream(
				adaptor, "rule table_name");
		RewriteRuleSubtreeStream stream_alter_table_specification = new RewriteRuleSubtreeStream(
				adaptor, "rule alter_table_specification");
		RewriteRuleSubtreeStream stream_partition_options = new RewriteRuleSubtreeStream(
				adaptor, "rule partition_options");
		try {
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:458:22: ( ALTER (
			// IGNORE_SYM )? TABLE table_name ( alter_table_specification (
			// COMMA alter_table_specification )* )? ( partition_options )? ->
			// ^( ALTER table_name ) ( alter_table_specification )+ )
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:459:2: ALTER (
			// IGNORE_SYM )? TABLE table_name ( alter_table_specification (
			// COMMA alter_table_specification )* )? ( partition_options )?
			{
				ALTER809 = (Token) match(input, ALTER,
						FOLLOW_ALTER_in_alter_table_statement4728);
				if (state.failed)
					return retval;
				if (state.backtracking == 0)
					stream_ALTER.add(ALTER809);

				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:459:8: (
				// IGNORE_SYM )?
				int alt330 = 2;
				int LA330_0 = input.LA(1);

				if ((LA330_0 == IGNORE_SYM)) {
					alt330 = 1;
				}
				switch (alt330) {
				case 1:
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:459:9: IGNORE_SYM
				{
					IGNORE_SYM810 = (Token) match(input, IGNORE_SYM,
							FOLLOW_IGNORE_SYM_in_alter_table_statement4731);
					if (state.failed)
						return retval;
					if (state.backtracking == 0)
						stream_IGNORE_SYM.add(IGNORE_SYM810);

				}
					break;

				}

				TABLE811 = (Token) match(input, TABLE,
						FOLLOW_TABLE_in_alter_table_statement4735);
				if (state.failed)
					return retval;
				if (state.backtracking == 0)
					stream_TABLE.add(TABLE811);

				pushFollow(FOLLOW_table_name_in_alter_table_statement4737);
				table_name812 = table_name();

				state._fsp--;
				if (state.failed)
					return retval;
				if (state.backtracking == 0)
					stream_table_name.add(table_name812.getTree());
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:460:2: (
				// alter_table_specification ( COMMA alter_table_specification
				// )* )?
				int alt332 = 2;
				int LA332_0 = input.LA(1);

				if ((LA332_0 == UNION_SYM
						|| LA332_0 == LOCK
						|| LA332_0 == ORDER_SYM
						|| LA332_0 == DEFAULT
						|| (LA332_0 >= INDEX_SYM && LA332_0 <= ALGORITHM_SYM)
						|| LA332_0 == DROP
						|| (LA332_0 >= CHECK_SYM && LA332_0 <= COMMENT_SYM)
						|| (LA332_0 >= CHARACTER_SYM && LA332_0 <= COLLATE_SYM)
						|| (LA332_0 >= ENGINE_SYM && LA332_0 <= DATA_SYM)
						|| (LA332_0 >= DELAY_KEY_WRITE_SYM && LA332_0 <= INSERT_METHOD)
						|| (LA332_0 >= KEY_BLOCK_SIZE && LA332_0 <= ROW_FORMAT_SYM)
						|| (LA332_0 >= STATS_AUTO_RECALC && LA332_0 <= STATS_PERSISTENT)
						|| (LA332_0 >= ALTER && LA332_0 <= ADD_SYM)
						|| (LA332_0 >= CHANGE && LA332_0 <= DISABLE_SYM)
						|| (LA332_0 >= ENABLE_SYM && LA332_0 <= RENAME)
						|| (LA332_0 >= CONVERT_SYM && LA332_0 <= DISCARD) || (LA332_0 >= IMPORT && LA332_0 <= REMOVE_SYM))) {
					alt332 = 1;
				}
				switch (alt332) {
				case 1:
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:460:4:
				// alter_table_specification ( COMMA alter_table_specification
				// )*
				{
					pushFollow(FOLLOW_alter_table_specification_in_alter_table_statement4742);
					alter_table_specification813 = alter_table_specification();

					state._fsp--;
					if (state.failed)
						return retval;
					if (state.backtracking == 0)
						stream_alter_table_specification
								.add(alter_table_specification813.getTree());
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:460:30: (
					// COMMA alter_table_specification )*
					loop331: do {
						int alt331 = 2;
						int LA331_0 = input.LA(1);

						if ((LA331_0 == COMMA)) {
							alt331 = 1;
						}

						switch (alt331) {
						case 1:
						// C:\\Users\\grand\\Desktop\\another\\MySQL.g:460:31:
						// COMMA alter_table_specification
						{
							COMMA814 = (Token) match(input, COMMA,
									FOLLOW_COMMA_in_alter_table_statement4745);
							if (state.failed)
								return retval;
							if (state.backtracking == 0)
								stream_COMMA.add(COMMA814);

							pushFollow(FOLLOW_alter_table_specification_in_alter_table_statement4747);
							alter_table_specification815 = alter_table_specification();

							state._fsp--;
							if (state.failed)
								return retval;
							if (state.backtracking == 0)
								stream_alter_table_specification
										.add(alter_table_specification815
												.getTree());

						}
							break;

						default:
							break loop331;
						}
					} while (true);

				}
					break;

				}

				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:461:2: (
				// partition_options )?
				int alt333 = 2;
				int LA333_0 = input.LA(1);

				if ((LA333_0 == PARTITION_SYM)) {
					alt333 = 1;
				}
				switch (alt333) {
				case 1:
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:461:4:
				// partition_options
				{
					pushFollow(FOLLOW_partition_options_in_alter_table_statement4757);
					partition_options816 = partition_options();

					state._fsp--;
					if (state.failed)
						return retval;
					if (state.backtracking == 0)
						stream_partition_options.add(partition_options816
								.getTree());

				}
					break;

				}

				// AST REWRITE
				// elements: ALTER, alter_table_specification, table_name
				// token labels:
				// rule labels: retval
				// token list labels:
				// rule list labels:
				// wildcard labels:
				if (state.backtracking == 0) {
					retval.tree = root_0;
					RewriteRuleSubtreeStream stream_retval = new RewriteRuleSubtreeStream(
							adaptor, "rule retval",
							retval != null ? retval.tree : null);

					root_0 = (Object) adaptor.nil();
					// 461:24: -> ^( ALTER table_name ) (
					// alter_table_specification )+
					{
						// C:\\Users\\grand\\Desktop\\another\\MySQL.g:461:26:
						// ^( ALTER table_name )
						{
							Object root_1 = (Object) adaptor.nil();
							root_1 = (Object) adaptor.becomeRoot(
									stream_ALTER.nextNode(), root_1);

							adaptor.addChild(root_1,
									stream_table_name.nextTree());

							adaptor.addChild(root_0, root_1);
						}
						if (!(stream_alter_table_specification.hasNext())) {
							throw new RewriteEarlyExitException();
						}
						while (stream_alter_table_specification.hasNext()) {
							adaptor.addChild(root_0,
									stream_alter_table_specification.nextTree());

						}
						stream_alter_table_specification.reset();

					}

					retval.tree = root_0;
				}
			}

			retval.stop = input.LT(-1);

			if (state.backtracking == 0) {

				retval.tree = (Object) adaptor.rulePostProcessing(root_0);
				adaptor.setTokenBoundaries(retval.tree, retval.start,
						retval.stop);
			}
		} catch (RecognitionException re) {
			reportError(re);
			recover(input, re);
			retval.tree = (Object) adaptor.errorNode(input, retval.start,
					input.LT(-1), re);

		} finally {
		}
		return retval;
	}

	// $ANTLR end "alter_table_statement"

	public static class alter_table_specification_return extends
			ParserRuleReturnScope {
		Object tree;

		public Object getTree() {
			return tree;
		}
	};

	// $ANTLR start "alter_table_specification"
	// C:\\Users\\grand\\Desktop\\another\\MySQL.g:463:1:
	// alter_table_specification : ( table_options | ( ADD_SYM ( COLUMN_SYM )?
	// column_name column_definition ( ( FIRST_SYM | AFTER_SYM ) column_name )?
	// ) | ( ADD_SYM ( COLUMN_SYM )? LPAREN column_definitions RPAREN ) | (
	// ADD_SYM ( INDEX_SYM | KEY_SYM ) ( index_name )? ( index_type )? LPAREN
	// index_column_names RPAREN ( index_option )* ) | ( ADD_SYM ( CONSTRAINT (
	// constraint_symbol_name )? )? PRIMARY_SYM KEY_SYM ( index_type )? LPAREN
	// index_column_names RPAREN ( index_option )* ) | ( ADD_SYM ( CONSTRAINT (
	// constraint_symbol_name )? )? UNIQUE_SYM ( INDEX_SYM | KEY_SYM )? (
	// index_name )? ( index_type )? LPAREN index_column_name ( COMMA
	// index_column_name )* RPAREN ( index_option )* ) | ( ADD_SYM FULLTEXT_SYM
	// ( INDEX_SYM | KEY_SYM )? ( index_name )? LPAREN index_column_names RPAREN
	// ( index_option )* ) | ( ADD_SYM SPATIAL_SYM ( INDEX_SYM | KEY_SYM )? (
	// index_name )? LPAREN index_column_names RPAREN ( index_option )* ) | (
	// ADD_SYM ( CONSTRAINT ( constraint_symbol_name )? )? FOREIGN KEY_SYM (
	// index_name )? LPAREN index_column_names RPAREN reference_definition ) | (
	// ALGORITHM_SYM ( EQ_SYM )? ( DEFAULT | INPLACE_SYM | COPY_SYM ) ) | (
	// ALTER ( COLUMN_SYM )? column_name ( ( SET_SYM DEFAULT literal_value ) | (
	// DROP DEFAULT ) ) ) | ( CHANGE ( COLUMN_SYM )? column_name column_name
	// column_definition ( FIRST_SYM | AFTER_SYM column_name )? ) | ( LOCK (
	// EQ_SYM )? ( DEFAULT | NONE_SYM | SHARED_SYM | EXCLUSIVE_SYM ) ) | (
	// MODIFY_SYM ( COLUMN_SYM )? column_name column_definition ( FIRST_SYM |
	// AFTER_SYM column_name )? ) | ( DROP ( COLUMN_SYM )? column_name ) | (
	// DROP PRIMARY_SYM KEY_SYM ) | ( DROP ( INDEX_SYM | KEY_SYM ) index_name )
	// | ( DROP FOREIGN KEY_SYM foreign_key_symbol_name ) | ( DISABLE_SYM KEYS )
	// | ( ENABLE_SYM KEYS ) | ( RENAME ( TO_SYM | AS_SYM )? table_name ) | (
	// ORDER_SYM BY_SYM column_name ( COMMA column_name )* ) | ( CONVERT_SYM
	// TO_SYM CHARACTER_SYM SET_SYM charset_name ( COLLATE_SYM collation_name )?
	// ) | ( ( DEFAULT )? CHARACTER_SYM SET_SYM ( EQ_SYM )? charset_name (
	// COLLATE_SYM ( EQ_SYM )? collation_name )? ) | ( DISCARD TABLESPACE ) | (
	// IMPORT TABLESPACE ) | ( FORCE_SYM ) | ( ADD_SYM PARTITION_SYM LPAREN
	// partition_definition RPAREN ) | ( DROP PARTITION_SYM partition_names ) |
	// ( TRUNCATE PARTITION_SYM ( partition_names | ALL ) ) | ( COALESCE
	// PARTITION_SYM INTEGER_NUM ) | ( REORGANIZE_SYM PARTITION_SYM
	// partition_names INTO LPAREN partition_definition ( COMMA
	// partition_definition )* RPAREN ) | ( EXCHANGE_SYM PARTITION_SYM
	// partition_name WITH TABLE table_name ) | ( ANALYZE_SYM PARTITION_SYM (
	// partition_names | ALL ) ) | ( CHECK_SYM PARTITION_SYM ( partition_names |
	// ALL ) ) | ( OPTIMIZE PARTITION_SYM ( partition_names | ALL ) ) | (
	// REBUILD_SYM PARTITION_SYM ( partition_names | ALL ) ) | ( REPAIR
	// PARTITION_SYM ( partition_names | ALL ) ) | ( REMOVE_SYM PARTITIONING_SYM
	// ) );
	public final MySQLParser.alter_table_specification_return alter_table_specification()
			throws RecognitionException {
		MySQLParser.alter_table_specification_return retval = new MySQLParser.alter_table_specification_return();
		retval.start = input.LT(1);

		Object root_0 = null;

		Token ADD_SYM818 = null;
		Token COLUMN_SYM819 = null;
		Token set822 = null;
		Token ADD_SYM824 = null;
		Token COLUMN_SYM825 = null;
		Token LPAREN826 = null;
		Token RPAREN828 = null;
		Token ADD_SYM829 = null;
		Token set830 = null;
		Token LPAREN833 = null;
		Token RPAREN835 = null;
		Token ADD_SYM837 = null;
		Token CONSTRAINT838 = null;
		Token PRIMARY_SYM840 = null;
		Token KEY_SYM841 = null;
		Token LPAREN843 = null;
		Token RPAREN845 = null;
		Token ADD_SYM847 = null;
		Token CONSTRAINT848 = null;
		Token UNIQUE_SYM850 = null;
		Token set851 = null;
		Token LPAREN854 = null;
		Token COMMA856 = null;
		Token RPAREN858 = null;
		Token ADD_SYM860 = null;
		Token FULLTEXT_SYM861 = null;
		Token set862 = null;
		Token LPAREN864 = null;
		Token RPAREN866 = null;
		Token ADD_SYM868 = null;
		Token SPATIAL_SYM869 = null;
		Token set870 = null;
		Token LPAREN872 = null;
		Token RPAREN874 = null;
		Token ADD_SYM876 = null;
		Token CONSTRAINT877 = null;
		Token FOREIGN879 = null;
		Token KEY_SYM880 = null;
		Token LPAREN882 = null;
		Token RPAREN884 = null;
		Token ALGORITHM_SYM886 = null;
		Token EQ_SYM887 = null;
		Token set888 = null;
		Token ALTER889 = null;
		Token COLUMN_SYM890 = null;
		Token SET_SYM892 = null;
		Token DEFAULT893 = null;
		Token DROP895 = null;
		Token DEFAULT896 = null;
		Token CHANGE897 = null;
		Token COLUMN_SYM898 = null;
		Token FIRST_SYM902 = null;
		Token AFTER_SYM903 = null;
		Token LOCK905 = null;
		Token EQ_SYM906 = null;
		Token set907 = null;
		Token MODIFY_SYM908 = null;
		Token COLUMN_SYM909 = null;
		Token FIRST_SYM912 = null;
		Token AFTER_SYM913 = null;
		Token DROP915 = null;
		Token COLUMN_SYM916 = null;
		Token DROP918 = null;
		Token PRIMARY_SYM919 = null;
		Token KEY_SYM920 = null;
		Token DROP921 = null;
		Token set922 = null;
		Token DROP924 = null;
		Token FOREIGN925 = null;
		Token KEY_SYM926 = null;
		Token DISABLE_SYM928 = null;
		Token KEYS929 = null;
		Token ENABLE_SYM930 = null;
		Token KEYS931 = null;
		Token RENAME932 = null;
		Token TO_SYM933 = null;
		Token AS_SYM934 = null;
		Token ORDER_SYM936 = null;
		Token BY_SYM937 = null;
		Token COMMA939 = null;
		Token CONVERT_SYM941 = null;
		Token TO_SYM942 = null;
		Token CHARACTER_SYM943 = null;
		Token SET_SYM944 = null;
		Token COLLATE_SYM946 = null;
		Token DEFAULT948 = null;
		Token CHARACTER_SYM949 = null;
		Token SET_SYM950 = null;
		Token EQ_SYM951 = null;
		Token COLLATE_SYM953 = null;
		Token EQ_SYM954 = null;
		Token DISCARD956 = null;
		Token TABLESPACE957 = null;
		Token IMPORT958 = null;
		Token TABLESPACE959 = null;
		Token FORCE_SYM960 = null;
		Token ADD_SYM961 = null;
		Token PARTITION_SYM962 = null;
		Token LPAREN963 = null;
		Token RPAREN965 = null;
		Token DROP966 = null;
		Token PARTITION_SYM967 = null;
		Token TRUNCATE969 = null;
		Token PARTITION_SYM970 = null;
		Token ALL972 = null;
		Token COALESCE973 = null;
		Token PARTITION_SYM974 = null;
		Token INTEGER_NUM975 = null;
		Token REORGANIZE_SYM976 = null;
		Token PARTITION_SYM977 = null;
		Token INTO979 = null;
		Token LPAREN980 = null;
		Token COMMA982 = null;
		Token RPAREN984 = null;
		Token EXCHANGE_SYM985 = null;
		Token PARTITION_SYM986 = null;
		Token WITH988 = null;
		Token TABLE989 = null;
		Token ANALYZE_SYM991 = null;
		Token PARTITION_SYM992 = null;
		Token ALL994 = null;
		Token CHECK_SYM995 = null;
		Token PARTITION_SYM996 = null;
		Token ALL998 = null;
		Token OPTIMIZE999 = null;
		Token PARTITION_SYM1000 = null;
		Token ALL1002 = null;
		Token REBUILD_SYM1003 = null;
		Token PARTITION_SYM1004 = null;
		Token ALL1006 = null;
		Token REPAIR1007 = null;
		Token PARTITION_SYM1008 = null;
		Token ALL1010 = null;
		Token REMOVE_SYM1011 = null;
		Token PARTITIONING_SYM1012 = null;
		MySQLParser.table_options_return table_options817 = null;

		MySQLParser.column_name_return column_name820 = null;

		MySQLParser.column_definition_return column_definition821 = null;

		MySQLParser.column_name_return column_name823 = null;

		MySQLParser.column_definitions_return column_definitions827 = null;

		MySQLParser.index_name_return index_name831 = null;

		MySQLParser.index_type_return index_type832 = null;

		MySQLParser.index_column_names_return index_column_names834 = null;

		MySQLParser.index_option_return index_option836 = null;

		MySQLParser.constraint_symbol_name_return constraint_symbol_name839 = null;

		MySQLParser.index_type_return index_type842 = null;

		MySQLParser.index_column_names_return index_column_names844 = null;

		MySQLParser.index_option_return index_option846 = null;

		MySQLParser.constraint_symbol_name_return constraint_symbol_name849 = null;

		MySQLParser.index_name_return index_name852 = null;

		MySQLParser.index_type_return index_type853 = null;

		MySQLParser.index_column_name_return index_column_name855 = null;

		MySQLParser.index_column_name_return index_column_name857 = null;

		MySQLParser.index_option_return index_option859 = null;

		MySQLParser.index_name_return index_name863 = null;

		MySQLParser.index_column_names_return index_column_names865 = null;

		MySQLParser.index_option_return index_option867 = null;

		MySQLParser.index_name_return index_name871 = null;

		MySQLParser.index_column_names_return index_column_names873 = null;

		MySQLParser.index_option_return index_option875 = null;

		MySQLParser.constraint_symbol_name_return constraint_symbol_name878 = null;

		MySQLParser.index_name_return index_name881 = null;

		MySQLParser.index_column_names_return index_column_names883 = null;

		MySQLParser.reference_definition_return reference_definition885 = null;

		MySQLParser.column_name_return column_name891 = null;

		MySQLParser.literal_value_return literal_value894 = null;

		MySQLParser.column_name_return column_name899 = null;

		MySQLParser.column_name_return column_name900 = null;

		MySQLParser.column_definition_return column_definition901 = null;

		MySQLParser.column_name_return column_name904 = null;

		MySQLParser.column_name_return column_name910 = null;

		MySQLParser.column_definition_return column_definition911 = null;

		MySQLParser.column_name_return column_name914 = null;

		MySQLParser.column_name_return column_name917 = null;

		MySQLParser.index_name_return index_name923 = null;

		MySQLParser.foreign_key_symbol_name_return foreign_key_symbol_name927 = null;

		MySQLParser.table_name_return table_name935 = null;

		MySQLParser.column_name_return column_name938 = null;

		MySQLParser.column_name_return column_name940 = null;

		MySQLParser.charset_name_return charset_name945 = null;

		MySQLParser.collation_name_return collation_name947 = null;

		MySQLParser.charset_name_return charset_name952 = null;

		MySQLParser.collation_name_return collation_name955 = null;

		MySQLParser.partition_definition_return partition_definition964 = null;

		MySQLParser.partition_names_return partition_names968 = null;

		MySQLParser.partition_names_return partition_names971 = null;

		MySQLParser.partition_names_return partition_names978 = null;

		MySQLParser.partition_definition_return partition_definition981 = null;

		MySQLParser.partition_definition_return partition_definition983 = null;

		MySQLParser.partition_name_return partition_name987 = null;

		MySQLParser.table_name_return table_name990 = null;

		MySQLParser.partition_names_return partition_names993 = null;

		MySQLParser.partition_names_return partition_names997 = null;

		MySQLParser.partition_names_return partition_names1001 = null;

		MySQLParser.partition_names_return partition_names1005 = null;

		MySQLParser.partition_names_return partition_names1009 = null;

		Object ADD_SYM818_tree = null;
		Object COLUMN_SYM819_tree = null;
		Object set822_tree = null;
		Object ADD_SYM824_tree = null;
		Object COLUMN_SYM825_tree = null;
		Object LPAREN826_tree = null;
		Object RPAREN828_tree = null;
		Object ADD_SYM829_tree = null;
		Object set830_tree = null;
		Object LPAREN833_tree = null;
		Object RPAREN835_tree = null;
		Object ADD_SYM837_tree = null;
		Object CONSTRAINT838_tree = null;
		Object PRIMARY_SYM840_tree = null;
		Object KEY_SYM841_tree = null;
		Object LPAREN843_tree = null;
		Object RPAREN845_tree = null;
		Object ADD_SYM847_tree = null;
		Object CONSTRAINT848_tree = null;
		Object UNIQUE_SYM850_tree = null;
		Object set851_tree = null;
		Object LPAREN854_tree = null;
		Object COMMA856_tree = null;
		Object RPAREN858_tree = null;
		Object ADD_SYM860_tree = null;
		Object FULLTEXT_SYM861_tree = null;
		Object set862_tree = null;
		Object LPAREN864_tree = null;
		Object RPAREN866_tree = null;
		Object ADD_SYM868_tree = null;
		Object SPATIAL_SYM869_tree = null;
		Object set870_tree = null;
		Object LPAREN872_tree = null;
		Object RPAREN874_tree = null;
		Object ADD_SYM876_tree = null;
		Object CONSTRAINT877_tree = null;
		Object FOREIGN879_tree = null;
		Object KEY_SYM880_tree = null;
		Object LPAREN882_tree = null;
		Object RPAREN884_tree = null;
		Object ALGORITHM_SYM886_tree = null;
		Object EQ_SYM887_tree = null;
		Object set888_tree = null;
		Object ALTER889_tree = null;
		Object COLUMN_SYM890_tree = null;
		Object SET_SYM892_tree = null;
		Object DEFAULT893_tree = null;
		Object DROP895_tree = null;
		Object DEFAULT896_tree = null;
		Object CHANGE897_tree = null;
		Object COLUMN_SYM898_tree = null;
		Object FIRST_SYM902_tree = null;
		Object AFTER_SYM903_tree = null;
		Object LOCK905_tree = null;
		Object EQ_SYM906_tree = null;
		Object set907_tree = null;
		Object MODIFY_SYM908_tree = null;
		Object COLUMN_SYM909_tree = null;
		Object FIRST_SYM912_tree = null;
		Object AFTER_SYM913_tree = null;
		Object DROP915_tree = null;
		Object COLUMN_SYM916_tree = null;
		Object DROP918_tree = null;
		Object PRIMARY_SYM919_tree = null;
		Object KEY_SYM920_tree = null;
		Object DROP921_tree = null;
		Object set922_tree = null;
		Object DROP924_tree = null;
		Object FOREIGN925_tree = null;
		Object KEY_SYM926_tree = null;
		Object DISABLE_SYM928_tree = null;
		Object KEYS929_tree = null;
		Object ENABLE_SYM930_tree = null;
		Object KEYS931_tree = null;
		Object RENAME932_tree = null;
		Object TO_SYM933_tree = null;
		Object AS_SYM934_tree = null;
		Object ORDER_SYM936_tree = null;
		Object BY_SYM937_tree = null;
		Object COMMA939_tree = null;
		Object CONVERT_SYM941_tree = null;
		Object TO_SYM942_tree = null;
		Object CHARACTER_SYM943_tree = null;
		Object SET_SYM944_tree = null;
		Object COLLATE_SYM946_tree = null;
		Object DEFAULT948_tree = null;
		Object CHARACTER_SYM949_tree = null;
		Object SET_SYM950_tree = null;
		Object EQ_SYM951_tree = null;
		Object COLLATE_SYM953_tree = null;
		Object EQ_SYM954_tree = null;
		Object DISCARD956_tree = null;
		Object TABLESPACE957_tree = null;
		Object IMPORT958_tree = null;
		Object TABLESPACE959_tree = null;
		Object FORCE_SYM960_tree = null;
		Object ADD_SYM961_tree = null;
		Object PARTITION_SYM962_tree = null;
		Object LPAREN963_tree = null;
		Object RPAREN965_tree = null;
		Object DROP966_tree = null;
		Object PARTITION_SYM967_tree = null;
		Object TRUNCATE969_tree = null;
		Object PARTITION_SYM970_tree = null;
		Object ALL972_tree = null;
		Object COALESCE973_tree = null;
		Object PARTITION_SYM974_tree = null;
		Object INTEGER_NUM975_tree = null;
		Object REORGANIZE_SYM976_tree = null;
		Object PARTITION_SYM977_tree = null;
		Object INTO979_tree = null;
		Object LPAREN980_tree = null;
		Object COMMA982_tree = null;
		Object RPAREN984_tree = null;
		Object EXCHANGE_SYM985_tree = null;
		Object PARTITION_SYM986_tree = null;
		Object WITH988_tree = null;
		Object TABLE989_tree = null;
		Object ANALYZE_SYM991_tree = null;
		Object PARTITION_SYM992_tree = null;
		Object ALL994_tree = null;
		Object CHECK_SYM995_tree = null;
		Object PARTITION_SYM996_tree = null;
		Object ALL998_tree = null;
		Object OPTIMIZE999_tree = null;
		Object PARTITION_SYM1000_tree = null;
		Object ALL1002_tree = null;
		Object REBUILD_SYM1003_tree = null;
		Object PARTITION_SYM1004_tree = null;
		Object ALL1006_tree = null;
		Object REPAIR1007_tree = null;
		Object PARTITION_SYM1008_tree = null;
		Object ALL1010_tree = null;
		Object REMOVE_SYM1011_tree = null;
		Object PARTITIONING_SYM1012_tree = null;

		try {
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:463:26: (
			// table_options | ( ADD_SYM ( COLUMN_SYM )? column_name
			// column_definition ( ( FIRST_SYM | AFTER_SYM ) column_name )? ) |
			// ( ADD_SYM ( COLUMN_SYM )? LPAREN column_definitions RPAREN ) | (
			// ADD_SYM ( INDEX_SYM | KEY_SYM ) ( index_name )? ( index_type )?
			// LPAREN index_column_names RPAREN ( index_option )* ) | ( ADD_SYM
			// ( CONSTRAINT ( constraint_symbol_name )? )? PRIMARY_SYM KEY_SYM (
			// index_type )? LPAREN index_column_names RPAREN ( index_option )*
			// ) | ( ADD_SYM ( CONSTRAINT ( constraint_symbol_name )? )?
			// UNIQUE_SYM ( INDEX_SYM | KEY_SYM )? ( index_name )? ( index_type
			// )? LPAREN index_column_name ( COMMA index_column_name )* RPAREN (
			// index_option )* ) | ( ADD_SYM FULLTEXT_SYM ( INDEX_SYM | KEY_SYM
			// )? ( index_name )? LPAREN index_column_names RPAREN (
			// index_option )* ) | ( ADD_SYM SPATIAL_SYM ( INDEX_SYM | KEY_SYM
			// )? ( index_name )? LPAREN index_column_names RPAREN (
			// index_option )* ) | ( ADD_SYM ( CONSTRAINT (
			// constraint_symbol_name )? )? FOREIGN KEY_SYM ( index_name )?
			// LPAREN index_column_names RPAREN reference_definition ) | (
			// ALGORITHM_SYM ( EQ_SYM )? ( DEFAULT | INPLACE_SYM | COPY_SYM ) )
			// | ( ALTER ( COLUMN_SYM )? column_name ( ( SET_SYM DEFAULT
			// literal_value ) | ( DROP DEFAULT ) ) ) | ( CHANGE ( COLUMN_SYM )?
			// column_name column_name column_definition ( FIRST_SYM | AFTER_SYM
			// column_name )? ) | ( LOCK ( EQ_SYM )? ( DEFAULT | NONE_SYM |
			// SHARED_SYM | EXCLUSIVE_SYM ) ) | ( MODIFY_SYM ( COLUMN_SYM )?
			// column_name column_definition ( FIRST_SYM | AFTER_SYM column_name
			// )? ) | ( DROP ( COLUMN_SYM )? column_name ) | ( DROP PRIMARY_SYM
			// KEY_SYM ) | ( DROP ( INDEX_SYM | KEY_SYM ) index_name ) | ( DROP
			// FOREIGN KEY_SYM foreign_key_symbol_name ) | ( DISABLE_SYM KEYS )
			// | ( ENABLE_SYM KEYS ) | ( RENAME ( TO_SYM | AS_SYM )? table_name
			// ) | ( ORDER_SYM BY_SYM column_name ( COMMA column_name )* ) | (
			// CONVERT_SYM TO_SYM CHARACTER_SYM SET_SYM charset_name (
			// COLLATE_SYM collation_name )? ) | ( ( DEFAULT )? CHARACTER_SYM
			// SET_SYM ( EQ_SYM )? charset_name ( COLLATE_SYM ( EQ_SYM )?
			// collation_name )? ) | ( DISCARD TABLESPACE ) | ( IMPORT
			// TABLESPACE ) | ( FORCE_SYM ) | ( ADD_SYM PARTITION_SYM LPAREN
			// partition_definition RPAREN ) | ( DROP PARTITION_SYM
			// partition_names ) | ( TRUNCATE PARTITION_SYM ( partition_names |
			// ALL ) ) | ( COALESCE PARTITION_SYM INTEGER_NUM ) | (
			// REORGANIZE_SYM PARTITION_SYM partition_names INTO LPAREN
			// partition_definition ( COMMA partition_definition )* RPAREN ) | (
			// EXCHANGE_SYM PARTITION_SYM partition_name WITH TABLE table_name )
			// | ( ANALYZE_SYM PARTITION_SYM ( partition_names | ALL ) ) | (
			// CHECK_SYM PARTITION_SYM ( partition_names | ALL ) ) | ( OPTIMIZE
			// PARTITION_SYM ( partition_names | ALL ) ) | ( REBUILD_SYM
			// PARTITION_SYM ( partition_names | ALL ) ) | ( REPAIR
			// PARTITION_SYM ( partition_names | ALL ) ) | ( REMOVE_SYM
			// PARTITIONING_SYM ) )
			int alt383 = 39;
			alt383 = dfa383.predict(input);
			switch (alt383) {
			case 1:
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:464:4: table_options
			{
				root_0 = (Object) adaptor.nil();

				pushFollow(FOLLOW_table_options_in_alter_table_specification4779);
				table_options817 = table_options();

				state._fsp--;
				if (state.failed)
					return retval;
				if (state.backtracking == 0)
					adaptor.addChild(root_0, table_options817.getTree());

			}
				break;
			case 2:
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:465:4: ( ADD_SYM (
			// COLUMN_SYM )? column_name column_definition ( ( FIRST_SYM |
			// AFTER_SYM ) column_name )? )
			{
				root_0 = (Object) adaptor.nil();

				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:465:4: ( ADD_SYM
				// ( COLUMN_SYM )? column_name column_definition ( ( FIRST_SYM |
				// AFTER_SYM ) column_name )? )
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:465:6: ADD_SYM (
				// COLUMN_SYM )? column_name column_definition ( ( FIRST_SYM |
				// AFTER_SYM ) column_name )?
				{
					ADD_SYM818 = (Token) match(input, ADD_SYM,
							FOLLOW_ADD_SYM_in_alter_table_specification4786);
					if (state.failed)
						return retval;
					if (state.backtracking == 0) {
						ADD_SYM818_tree = (Object) adaptor.create(ADD_SYM818);
						root_0 = (Object) adaptor.becomeRoot(ADD_SYM818_tree,
								root_0);
					}
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:465:15: (
					// COLUMN_SYM )?
					int alt334 = 2;
					int LA334_0 = input.LA(1);

					if ((LA334_0 == COLUMN_SYM)) {
						alt334 = 1;
					}
					switch (alt334) {
					case 1:
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:465:16:
					// COLUMN_SYM
					{
						COLUMN_SYM819 = (Token) match(input, COLUMN_SYM,
								FOLLOW_COLUMN_SYM_in_alter_table_specification4790);
						if (state.failed)
							return retval;
						if (state.backtracking == 0) {
							COLUMN_SYM819_tree = (Object) adaptor
									.create(COLUMN_SYM819);
							adaptor.addChild(root_0, COLUMN_SYM819_tree);
						}

					}
						break;

					}

					pushFollow(FOLLOW_column_name_in_alter_table_specification4794);
					column_name820 = column_name();

					state._fsp--;
					if (state.failed)
						return retval;
					if (state.backtracking == 0)
						adaptor.addChild(root_0, column_name820.getTree());
					pushFollow(FOLLOW_column_definition_in_alter_table_specification4796);
					column_definition821 = column_definition();

					state._fsp--;
					if (state.failed)
						return retval;
					if (state.backtracking == 0)
						adaptor.addChild(root_0, column_definition821.getTree());
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:465:59: ( (
					// FIRST_SYM | AFTER_SYM ) column_name )?
					int alt335 = 2;
					int LA335_0 = input.LA(1);

					if ((LA335_0 == FIRST_SYM || LA335_0 == AFTER_SYM)) {
						alt335 = 1;
					}
					switch (alt335) {
					case 1:
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:465:61: (
					// FIRST_SYM | AFTER_SYM ) column_name
					{
						set822 = (Token) input.LT(1);
						if (input.LA(1) == FIRST_SYM
								|| input.LA(1) == AFTER_SYM) {
							input.consume();
							if (state.backtracking == 0)
								adaptor.addChild(root_0,
										(Object) adaptor.create(set822));
							state.errorRecovery = false;
							state.failed = false;
						} else {
							if (state.backtracking > 0) {
								state.failed = true;
								return retval;
							}
							MismatchedSetException mse = new MismatchedSetException(
									null, input);
							throw mse;
						}

						pushFollow(FOLLOW_column_name_in_alter_table_specification4806);
						column_name823 = column_name();

						state._fsp--;
						if (state.failed)
							return retval;
						if (state.backtracking == 0)
							adaptor.addChild(root_0, column_name823.getTree());

					}
						break;

					}

				}

			}
				break;
			case 3:
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:466:4: ( ADD_SYM (
			// COLUMN_SYM )? LPAREN column_definitions RPAREN )
			{
				root_0 = (Object) adaptor.nil();

				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:466:4: ( ADD_SYM
				// ( COLUMN_SYM )? LPAREN column_definitions RPAREN )
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:466:6: ADD_SYM (
				// COLUMN_SYM )? LPAREN column_definitions RPAREN
				{
					ADD_SYM824 = (Token) match(input, ADD_SYM,
							FOLLOW_ADD_SYM_in_alter_table_specification4818);
					if (state.failed)
						return retval;
					if (state.backtracking == 0) {
						ADD_SYM824_tree = (Object) adaptor.create(ADD_SYM824);
						root_0 = (Object) adaptor.becomeRoot(ADD_SYM824_tree,
								root_0);
					}
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:466:15: (
					// COLUMN_SYM )?
					int alt336 = 2;
					int LA336_0 = input.LA(1);

					if ((LA336_0 == COLUMN_SYM)) {
						alt336 = 1;
					}
					switch (alt336) {
					case 1:
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:466:16:
					// COLUMN_SYM
					{
						COLUMN_SYM825 = (Token) match(input, COLUMN_SYM,
								FOLLOW_COLUMN_SYM_in_alter_table_specification4822);
						if (state.failed)
							return retval;
						if (state.backtracking == 0) {
							COLUMN_SYM825_tree = (Object) adaptor
									.create(COLUMN_SYM825);
							adaptor.addChild(root_0, COLUMN_SYM825_tree);
						}

					}
						break;

					}

					LPAREN826 = (Token) match(input, LPAREN,
							FOLLOW_LPAREN_in_alter_table_specification4826);
					if (state.failed)
						return retval;
					if (state.backtracking == 0) {
						LPAREN826_tree = (Object) adaptor.create(LPAREN826);
						adaptor.addChild(root_0, LPAREN826_tree);
					}
					pushFollow(FOLLOW_column_definitions_in_alter_table_specification4828);
					column_definitions827 = column_definitions();

					state._fsp--;
					if (state.failed)
						return retval;
					if (state.backtracking == 0)
						adaptor.addChild(root_0,
								column_definitions827.getTree());
					RPAREN828 = (Token) match(input, RPAREN,
							FOLLOW_RPAREN_in_alter_table_specification4830);
					if (state.failed)
						return retval;
					if (state.backtracking == 0) {
						RPAREN828_tree = (Object) adaptor.create(RPAREN828);
						adaptor.addChild(root_0, RPAREN828_tree);
					}

				}

			}
				break;
			case 4:
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:467:4: ( ADD_SYM (
			// INDEX_SYM | KEY_SYM ) ( index_name )? ( index_type )? LPAREN
			// index_column_names RPAREN ( index_option )* )
			{
				root_0 = (Object) adaptor.nil();

				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:467:4: ( ADD_SYM
				// ( INDEX_SYM | KEY_SYM ) ( index_name )? ( index_type )?
				// LPAREN index_column_names RPAREN ( index_option )* )
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:467:6: ADD_SYM (
				// INDEX_SYM | KEY_SYM ) ( index_name )? ( index_type )? LPAREN
				// index_column_names RPAREN ( index_option )*
				{
					ADD_SYM829 = (Token) match(input, ADD_SYM,
							FOLLOW_ADD_SYM_in_alter_table_specification4839);
					if (state.failed)
						return retval;
					if (state.backtracking == 0) {
						ADD_SYM829_tree = (Object) adaptor.create(ADD_SYM829);
						root_0 = (Object) adaptor.becomeRoot(ADD_SYM829_tree,
								root_0);
					}
					set830 = (Token) input.LT(1);
					if (input.LA(1) == KEY_SYM || input.LA(1) == INDEX_SYM) {
						input.consume();
						if (state.backtracking == 0)
							adaptor.addChild(root_0,
									(Object) adaptor.create(set830));
						state.errorRecovery = false;
						state.failed = false;
					} else {
						if (state.backtracking > 0) {
							state.failed = true;
							return retval;
						}
						MismatchedSetException mse = new MismatchedSetException(
								null, input);
						throw mse;
					}

					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:467:35: (
					// index_name )?
					int alt337 = 2;
					int LA337_0 = input.LA(1);

					if ((LA337_0 == ID)) {
						alt337 = 1;
					}
					switch (alt337) {
					case 1:
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:467:36:
					// index_name
					{
						pushFollow(FOLLOW_index_name_in_alter_table_specification4849);
						index_name831 = index_name();

						state._fsp--;
						if (state.failed)
							return retval;
						if (state.backtracking == 0)
							adaptor.addChild(root_0, index_name831.getTree());

					}
						break;

					}

					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:467:49: (
					// index_type )?
					int alt338 = 2;
					int LA338_0 = input.LA(1);

					if ((LA338_0 == USING_SYM)) {
						alt338 = 1;
					}
					switch (alt338) {
					case 1:
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:467:50:
					// index_type
					{
						pushFollow(FOLLOW_index_type_in_alter_table_specification4854);
						index_type832 = index_type();

						state._fsp--;
						if (state.failed)
							return retval;
						if (state.backtracking == 0)
							adaptor.addChild(root_0, index_type832.getTree());

					}
						break;

					}

					LPAREN833 = (Token) match(input, LPAREN,
							FOLLOW_LPAREN_in_alter_table_specification4858);
					if (state.failed)
						return retval;
					if (state.backtracking == 0) {
						LPAREN833_tree = (Object) adaptor.create(LPAREN833);
						adaptor.addChild(root_0, LPAREN833_tree);
					}
					pushFollow(FOLLOW_index_column_names_in_alter_table_specification4860);
					index_column_names834 = index_column_names();

					state._fsp--;
					if (state.failed)
						return retval;
					if (state.backtracking == 0)
						adaptor.addChild(root_0,
								index_column_names834.getTree());
					RPAREN835 = (Token) match(input, RPAREN,
							FOLLOW_RPAREN_in_alter_table_specification4862);
					if (state.failed)
						return retval;
					if (state.backtracking == 0) {
						RPAREN835_tree = (Object) adaptor.create(RPAREN835);
						adaptor.addChild(root_0, RPAREN835_tree);
					}
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:467:96: (
					// index_option )*
					loop339: do {
						int alt339 = 2;
						int LA339_0 = input.LA(1);

						if ((LA339_0 == WITH || LA339_0 == USING_SYM
								|| LA339_0 == COMMENT_SYM || LA339_0 == KEY_BLOCK_SIZE)) {
							alt339 = 1;
						}

						switch (alt339) {
						case 1:
						// C:\\Users\\grand\\Desktop\\another\\MySQL.g:467:97:
						// index_option
						{
							pushFollow(FOLLOW_index_option_in_alter_table_specification4865);
							index_option836 = index_option();

							state._fsp--;
							if (state.failed)
								return retval;
							if (state.backtracking == 0)
								adaptor.addChild(root_0,
										index_option836.getTree());

						}
							break;

						default:
							break loop339;
						}
					} while (true);

				}

			}
				break;
			case 5:
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:468:4: ( ADD_SYM (
			// CONSTRAINT ( constraint_symbol_name )? )? PRIMARY_SYM KEY_SYM (
			// index_type )? LPAREN index_column_names RPAREN ( index_option )*
			// )
			{
				root_0 = (Object) adaptor.nil();

				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:468:4: ( ADD_SYM
				// ( CONSTRAINT ( constraint_symbol_name )? )? PRIMARY_SYM
				// KEY_SYM ( index_type )? LPAREN index_column_names RPAREN (
				// index_option )* )
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:468:6: ADD_SYM (
				// CONSTRAINT ( constraint_symbol_name )? )? PRIMARY_SYM KEY_SYM
				// ( index_type )? LPAREN index_column_names RPAREN (
				// index_option )*
				{
					ADD_SYM837 = (Token) match(input, ADD_SYM,
							FOLLOW_ADD_SYM_in_alter_table_specification4876);
					if (state.failed)
						return retval;
					if (state.backtracking == 0) {
						ADD_SYM837_tree = (Object) adaptor.create(ADD_SYM837);
						root_0 = (Object) adaptor.becomeRoot(ADD_SYM837_tree,
								root_0);
					}
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:468:15: (
					// CONSTRAINT ( constraint_symbol_name )? )?
					int alt341 = 2;
					int LA341_0 = input.LA(1);

					if ((LA341_0 == CONSTRAINT)) {
						alt341 = 1;
					}
					switch (alt341) {
					case 1:
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:468:16:
					// CONSTRAINT ( constraint_symbol_name )?
					{
						CONSTRAINT838 = (Token) match(input, CONSTRAINT,
								FOLLOW_CONSTRAINT_in_alter_table_specification4880);
						if (state.failed)
							return retval;
						if (state.backtracking == 0) {
							CONSTRAINT838_tree = (Object) adaptor
									.create(CONSTRAINT838);
							adaptor.addChild(root_0, CONSTRAINT838_tree);
						}
						// C:\\Users\\grand\\Desktop\\another\\MySQL.g:468:27: (
						// constraint_symbol_name )?
						int alt340 = 2;
						int LA340_0 = input.LA(1);

						if ((LA340_0 == ID)) {
							alt340 = 1;
						}
						switch (alt340) {
						case 1:
						// C:\\Users\\grand\\Desktop\\another\\MySQL.g:468:28:
						// constraint_symbol_name
						{
							pushFollow(FOLLOW_constraint_symbol_name_in_alter_table_specification4883);
							constraint_symbol_name839 = constraint_symbol_name();

							state._fsp--;
							if (state.failed)
								return retval;
							if (state.backtracking == 0)
								adaptor.addChild(root_0,
										constraint_symbol_name839.getTree());

						}
							break;

						}

					}
						break;

					}

					PRIMARY_SYM840 = (Token) match(input, PRIMARY_SYM,
							FOLLOW_PRIMARY_SYM_in_alter_table_specification4889);
					if (state.failed)
						return retval;
					if (state.backtracking == 0) {
						PRIMARY_SYM840_tree = (Object) adaptor
								.create(PRIMARY_SYM840);
						adaptor.addChild(root_0, PRIMARY_SYM840_tree);
					}
					KEY_SYM841 = (Token) match(input, KEY_SYM,
							FOLLOW_KEY_SYM_in_alter_table_specification4891);
					if (state.failed)
						return retval;
					if (state.backtracking == 0) {
						KEY_SYM841_tree = (Object) adaptor.create(KEY_SYM841);
						adaptor.addChild(root_0, KEY_SYM841_tree);
					}
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:468:75: (
					// index_type )?
					int alt342 = 2;
					int LA342_0 = input.LA(1);

					if ((LA342_0 == USING_SYM)) {
						alt342 = 1;
					}
					switch (alt342) {
					case 1:
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:468:76:
					// index_type
					{
						pushFollow(FOLLOW_index_type_in_alter_table_specification4894);
						index_type842 = index_type();

						state._fsp--;
						if (state.failed)
							return retval;
						if (state.backtracking == 0)
							adaptor.addChild(root_0, index_type842.getTree());

					}
						break;

					}

					LPAREN843 = (Token) match(input, LPAREN,
							FOLLOW_LPAREN_in_alter_table_specification4898);
					if (state.failed)
						return retval;
					if (state.backtracking == 0) {
						LPAREN843_tree = (Object) adaptor.create(LPAREN843);
						adaptor.addChild(root_0, LPAREN843_tree);
					}
					pushFollow(FOLLOW_index_column_names_in_alter_table_specification4900);
					index_column_names844 = index_column_names();

					state._fsp--;
					if (state.failed)
						return retval;
					if (state.backtracking == 0)
						adaptor.addChild(root_0,
								index_column_names844.getTree());
					RPAREN845 = (Token) match(input, RPAREN,
							FOLLOW_RPAREN_in_alter_table_specification4902);
					if (state.failed)
						return retval;
					if (state.backtracking == 0) {
						RPAREN845_tree = (Object) adaptor.create(RPAREN845);
						adaptor.addChild(root_0, RPAREN845_tree);
					}
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:468:122: (
					// index_option )*
					loop343: do {
						int alt343 = 2;
						int LA343_0 = input.LA(1);

						if ((LA343_0 == WITH || LA343_0 == USING_SYM
								|| LA343_0 == COMMENT_SYM || LA343_0 == KEY_BLOCK_SIZE)) {
							alt343 = 1;
						}

						switch (alt343) {
						case 1:
						// C:\\Users\\grand\\Desktop\\another\\MySQL.g:468:123:
						// index_option
						{
							pushFollow(FOLLOW_index_option_in_alter_table_specification4905);
							index_option846 = index_option();

							state._fsp--;
							if (state.failed)
								return retval;
							if (state.backtracking == 0)
								adaptor.addChild(root_0,
										index_option846.getTree());

						}
							break;

						default:
							break loop343;
						}
					} while (true);

				}

			}
				break;
			case 6:
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:470:3: ( ADD_SYM (
			// CONSTRAINT ( constraint_symbol_name )? )? UNIQUE_SYM ( INDEX_SYM
			// | KEY_SYM )? ( index_name )? ( index_type )? LPAREN
			// index_column_name ( COMMA index_column_name )* RPAREN (
			// index_option )* )
			{
				root_0 = (Object) adaptor.nil();

				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:470:3: ( ADD_SYM
				// ( CONSTRAINT ( constraint_symbol_name )? )? UNIQUE_SYM (
				// INDEX_SYM | KEY_SYM )? ( index_name )? ( index_type )? LPAREN
				// index_column_name ( COMMA index_column_name )* RPAREN (
				// index_option )* )
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:471:3: ADD_SYM (
				// CONSTRAINT ( constraint_symbol_name )? )? UNIQUE_SYM (
				// INDEX_SYM | KEY_SYM )? ( index_name )? ( index_type )? LPAREN
				// index_column_name ( COMMA index_column_name )* RPAREN (
				// index_option )*
				{
					ADD_SYM847 = (Token) match(input, ADD_SYM,
							FOLLOW_ADD_SYM_in_alter_table_specification4922);
					if (state.failed)
						return retval;
					if (state.backtracking == 0) {
						ADD_SYM847_tree = (Object) adaptor.create(ADD_SYM847);
						root_0 = (Object) adaptor.becomeRoot(ADD_SYM847_tree,
								root_0);
					}
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:471:12: (
					// CONSTRAINT ( constraint_symbol_name )? )?
					int alt345 = 2;
					int LA345_0 = input.LA(1);

					if ((LA345_0 == CONSTRAINT)) {
						alt345 = 1;
					}
					switch (alt345) {
					case 1:
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:471:13:
					// CONSTRAINT ( constraint_symbol_name )?
					{
						CONSTRAINT848 = (Token) match(input, CONSTRAINT,
								FOLLOW_CONSTRAINT_in_alter_table_specification4926);
						if (state.failed)
							return retval;
						if (state.backtracking == 0) {
							CONSTRAINT848_tree = (Object) adaptor
									.create(CONSTRAINT848);
							adaptor.addChild(root_0, CONSTRAINT848_tree);
						}
						// C:\\Users\\grand\\Desktop\\another\\MySQL.g:471:24: (
						// constraint_symbol_name )?
						int alt344 = 2;
						int LA344_0 = input.LA(1);

						if ((LA344_0 == ID)) {
							alt344 = 1;
						}
						switch (alt344) {
						case 1:
						// C:\\Users\\grand\\Desktop\\another\\MySQL.g:471:25:
						// constraint_symbol_name
						{
							pushFollow(FOLLOW_constraint_symbol_name_in_alter_table_specification4929);
							constraint_symbol_name849 = constraint_symbol_name();

							state._fsp--;
							if (state.failed)
								return retval;
							if (state.backtracking == 0)
								adaptor.addChild(root_0,
										constraint_symbol_name849.getTree());

						}
							break;

						}

					}
						break;

					}

					UNIQUE_SYM850 = (Token) match(input, UNIQUE_SYM,
							FOLLOW_UNIQUE_SYM_in_alter_table_specification4935);
					if (state.failed)
						return retval;
					if (state.backtracking == 0) {
						UNIQUE_SYM850_tree = (Object) adaptor
								.create(UNIQUE_SYM850);
						adaptor.addChild(root_0, UNIQUE_SYM850_tree);
					}
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:471:63: (
					// INDEX_SYM | KEY_SYM )?
					int alt346 = 2;
					int LA346_0 = input.LA(1);

					if ((LA346_0 == KEY_SYM || LA346_0 == INDEX_SYM)) {
						alt346 = 1;
					}
					switch (alt346) {
					case 1:
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:
					{
						set851 = (Token) input.LT(1);
						if (input.LA(1) == KEY_SYM || input.LA(1) == INDEX_SYM) {
							input.consume();
							if (state.backtracking == 0)
								adaptor.addChild(root_0,
										(Object) adaptor.create(set851));
							state.errorRecovery = false;
							state.failed = false;
						} else {
							if (state.backtracking > 0) {
								state.failed = true;
								return retval;
							}
							MismatchedSetException mse = new MismatchedSetException(
									null, input);
							throw mse;
						}

					}
						break;

					}

					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:471:84: (
					// index_name )?
					int alt347 = 2;
					int LA347_0 = input.LA(1);

					if ((LA347_0 == ID)) {
						alt347 = 1;
					}
					switch (alt347) {
					case 1:
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:471:85:
					// index_name
					{
						pushFollow(FOLLOW_index_name_in_alter_table_specification4945);
						index_name852 = index_name();

						state._fsp--;
						if (state.failed)
							return retval;
						if (state.backtracking == 0)
							adaptor.addChild(root_0, index_name852.getTree());

					}
						break;

					}

					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:472:3: (
					// index_type )?
					int alt348 = 2;
					int LA348_0 = input.LA(1);

					if ((LA348_0 == USING_SYM)) {
						alt348 = 1;
					}
					switch (alt348) {
					case 1:
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:472:4:
					// index_type
					{
						pushFollow(FOLLOW_index_type_in_alter_table_specification4953);
						index_type853 = index_type();

						state._fsp--;
						if (state.failed)
							return retval;
						if (state.backtracking == 0)
							adaptor.addChild(root_0, index_type853.getTree());

					}
						break;

					}

					LPAREN854 = (Token) match(input, LPAREN,
							FOLLOW_LPAREN_in_alter_table_specification4957);
					if (state.failed)
						return retval;
					if (state.backtracking == 0) {
						LPAREN854_tree = (Object) adaptor.create(LPAREN854);
						adaptor.addChild(root_0, LPAREN854_tree);
					}
					pushFollow(FOLLOW_index_column_name_in_alter_table_specification4959);
					index_column_name855 = index_column_name();

					state._fsp--;
					if (state.failed)
						return retval;
					if (state.backtracking == 0)
						adaptor.addChild(root_0, index_column_name855.getTree());
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:472:42: (
					// COMMA index_column_name )*
					loop349: do {
						int alt349 = 2;
						int LA349_0 = input.LA(1);

						if ((LA349_0 == COMMA)) {
							alt349 = 1;
						}

						switch (alt349) {
						case 1:
						// C:\\Users\\grand\\Desktop\\another\\MySQL.g:472:43:
						// COMMA index_column_name
						{
							COMMA856 = (Token) match(input, COMMA,
									FOLLOW_COMMA_in_alter_table_specification4962);
							if (state.failed)
								return retval;
							if (state.backtracking == 0) {
								COMMA856_tree = (Object) adaptor
										.create(COMMA856);
								adaptor.addChild(root_0, COMMA856_tree);
							}
							pushFollow(FOLLOW_index_column_name_in_alter_table_specification4964);
							index_column_name857 = index_column_name();

							state._fsp--;
							if (state.failed)
								return retval;
							if (state.backtracking == 0)
								adaptor.addChild(root_0,
										index_column_name857.getTree());

						}
							break;

						default:
							break loop349;
						}
					} while (true);

					RPAREN858 = (Token) match(input, RPAREN,
							FOLLOW_RPAREN_in_alter_table_specification4968);
					if (state.failed)
						return retval;
					if (state.backtracking == 0) {
						RPAREN858_tree = (Object) adaptor.create(RPAREN858);
						adaptor.addChild(root_0, RPAREN858_tree);
					}
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:472:76: (
					// index_option )*
					loop350: do {
						int alt350 = 2;
						int LA350_0 = input.LA(1);

						if ((LA350_0 == WITH || LA350_0 == USING_SYM
								|| LA350_0 == COMMENT_SYM || LA350_0 == KEY_BLOCK_SIZE)) {
							alt350 = 1;
						}

						switch (alt350) {
						case 1:
						// C:\\Users\\grand\\Desktop\\another\\MySQL.g:472:77:
						// index_option
						{
							pushFollow(FOLLOW_index_option_in_alter_table_specification4971);
							index_option859 = index_option();

							state._fsp--;
							if (state.failed)
								return retval;
							if (state.backtracking == 0)
								adaptor.addChild(root_0,
										index_option859.getTree());

						}
							break;

						default:
							break loop350;
						}
					} while (true);

				}

			}
				break;
			case 7:
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:474:4: ( ADD_SYM
			// FULLTEXT_SYM ( INDEX_SYM | KEY_SYM )? ( index_name )? LPAREN
			// index_column_names RPAREN ( index_option )* )
			{
				root_0 = (Object) adaptor.nil();

				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:474:4: ( ADD_SYM
				// FULLTEXT_SYM ( INDEX_SYM | KEY_SYM )? ( index_name )? LPAREN
				// index_column_names RPAREN ( index_option )* )
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:474:6: ADD_SYM
				// FULLTEXT_SYM ( INDEX_SYM | KEY_SYM )? ( index_name )? LPAREN
				// index_column_names RPAREN ( index_option )*
				{
					ADD_SYM860 = (Token) match(input, ADD_SYM,
							FOLLOW_ADD_SYM_in_alter_table_specification4984);
					if (state.failed)
						return retval;
					if (state.backtracking == 0) {
						ADD_SYM860_tree = (Object) adaptor.create(ADD_SYM860);
						root_0 = (Object) adaptor.becomeRoot(ADD_SYM860_tree,
								root_0);
					}
					FULLTEXT_SYM861 = (Token) match(input, FULLTEXT_SYM,
							FOLLOW_FULLTEXT_SYM_in_alter_table_specification4987);
					if (state.failed)
						return retval;
					if (state.backtracking == 0) {
						FULLTEXT_SYM861_tree = (Object) adaptor
								.create(FULLTEXT_SYM861);
						adaptor.addChild(root_0, FULLTEXT_SYM861_tree);
					}
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:474:28: (
					// INDEX_SYM | KEY_SYM )?
					int alt351 = 2;
					int LA351_0 = input.LA(1);

					if ((LA351_0 == KEY_SYM || LA351_0 == INDEX_SYM)) {
						alt351 = 1;
					}
					switch (alt351) {
					case 1:
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:
					{
						set862 = (Token) input.LT(1);
						if (input.LA(1) == KEY_SYM || input.LA(1) == INDEX_SYM) {
							input.consume();
							if (state.backtracking == 0)
								adaptor.addChild(root_0,
										(Object) adaptor.create(set862));
							state.errorRecovery = false;
							state.failed = false;
						} else {
							if (state.backtracking > 0) {
								state.failed = true;
								return retval;
							}
							MismatchedSetException mse = new MismatchedSetException(
									null, input);
							throw mse;
						}

					}
						break;

					}

					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:474:49: (
					// index_name )?
					int alt352 = 2;
					int LA352_0 = input.LA(1);

					if ((LA352_0 == ID)) {
						alt352 = 1;
					}
					switch (alt352) {
					case 1:
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:474:50:
					// index_name
					{
						pushFollow(FOLLOW_index_name_in_alter_table_specification4997);
						index_name863 = index_name();

						state._fsp--;
						if (state.failed)
							return retval;
						if (state.backtracking == 0)
							adaptor.addChild(root_0, index_name863.getTree());

					}
						break;

					}

					LPAREN864 = (Token) match(input, LPAREN,
							FOLLOW_LPAREN_in_alter_table_specification5001);
					if (state.failed)
						return retval;
					if (state.backtracking == 0) {
						LPAREN864_tree = (Object) adaptor.create(LPAREN864);
						adaptor.addChild(root_0, LPAREN864_tree);
					}
					pushFollow(FOLLOW_index_column_names_in_alter_table_specification5003);
					index_column_names865 = index_column_names();

					state._fsp--;
					if (state.failed)
						return retval;
					if (state.backtracking == 0)
						adaptor.addChild(root_0,
								index_column_names865.getTree());
					RPAREN866 = (Token) match(input, RPAREN,
							FOLLOW_RPAREN_in_alter_table_specification5005);
					if (state.failed)
						return retval;
					if (state.backtracking == 0) {
						RPAREN866_tree = (Object) adaptor.create(RPAREN866);
						adaptor.addChild(root_0, RPAREN866_tree);
					}
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:474:96: (
					// index_option )*
					loop353: do {
						int alt353 = 2;
						int LA353_0 = input.LA(1);

						if ((LA353_0 == WITH || LA353_0 == USING_SYM
								|| LA353_0 == COMMENT_SYM || LA353_0 == KEY_BLOCK_SIZE)) {
							alt353 = 1;
						}

						switch (alt353) {
						case 1:
						// C:\\Users\\grand\\Desktop\\another\\MySQL.g:474:97:
						// index_option
						{
							pushFollow(FOLLOW_index_option_in_alter_table_specification5008);
							index_option867 = index_option();

							state._fsp--;
							if (state.failed)
								return retval;
							if (state.backtracking == 0)
								adaptor.addChild(root_0,
										index_option867.getTree());

						}
							break;

						default:
							break loop353;
						}
					} while (true);

				}

			}
				break;
			case 8:
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:475:4: ( ADD_SYM
			// SPATIAL_SYM ( INDEX_SYM | KEY_SYM )? ( index_name )? LPAREN
			// index_column_names RPAREN ( index_option )* )
			{
				root_0 = (Object) adaptor.nil();

				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:475:4: ( ADD_SYM
				// SPATIAL_SYM ( INDEX_SYM | KEY_SYM )? ( index_name )? LPAREN
				// index_column_names RPAREN ( index_option )* )
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:475:6: ADD_SYM
				// SPATIAL_SYM ( INDEX_SYM | KEY_SYM )? ( index_name )? LPAREN
				// index_column_names RPAREN ( index_option )*
				{
					ADD_SYM868 = (Token) match(input, ADD_SYM,
							FOLLOW_ADD_SYM_in_alter_table_specification5019);
					if (state.failed)
						return retval;
					if (state.backtracking == 0) {
						ADD_SYM868_tree = (Object) adaptor.create(ADD_SYM868);
						root_0 = (Object) adaptor.becomeRoot(ADD_SYM868_tree,
								root_0);
					}
					SPATIAL_SYM869 = (Token) match(input, SPATIAL_SYM,
							FOLLOW_SPATIAL_SYM_in_alter_table_specification5022);
					if (state.failed)
						return retval;
					if (state.backtracking == 0) {
						SPATIAL_SYM869_tree = (Object) adaptor
								.create(SPATIAL_SYM869);
						adaptor.addChild(root_0, SPATIAL_SYM869_tree);
					}
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:475:27: (
					// INDEX_SYM | KEY_SYM )?
					int alt354 = 2;
					int LA354_0 = input.LA(1);

					if ((LA354_0 == KEY_SYM || LA354_0 == INDEX_SYM)) {
						alt354 = 1;
					}
					switch (alt354) {
					case 1:
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:
					{
						set870 = (Token) input.LT(1);
						if (input.LA(1) == KEY_SYM || input.LA(1) == INDEX_SYM) {
							input.consume();
							if (state.backtracking == 0)
								adaptor.addChild(root_0,
										(Object) adaptor.create(set870));
							state.errorRecovery = false;
							state.failed = false;
						} else {
							if (state.backtracking > 0) {
								state.failed = true;
								return retval;
							}
							MismatchedSetException mse = new MismatchedSetException(
									null, input);
							throw mse;
						}

					}
						break;

					}

					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:475:48: (
					// index_name )?
					int alt355 = 2;
					int LA355_0 = input.LA(1);

					if ((LA355_0 == ID)) {
						alt355 = 1;
					}
					switch (alt355) {
					case 1:
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:475:49:
					// index_name
					{
						pushFollow(FOLLOW_index_name_in_alter_table_specification5032);
						index_name871 = index_name();

						state._fsp--;
						if (state.failed)
							return retval;
						if (state.backtracking == 0)
							adaptor.addChild(root_0, index_name871.getTree());

					}
						break;

					}

					LPAREN872 = (Token) match(input, LPAREN,
							FOLLOW_LPAREN_in_alter_table_specification5036);
					if (state.failed)
						return retval;
					if (state.backtracking == 0) {
						LPAREN872_tree = (Object) adaptor.create(LPAREN872);
						adaptor.addChild(root_0, LPAREN872_tree);
					}
					pushFollow(FOLLOW_index_column_names_in_alter_table_specification5038);
					index_column_names873 = index_column_names();

					state._fsp--;
					if (state.failed)
						return retval;
					if (state.backtracking == 0)
						adaptor.addChild(root_0,
								index_column_names873.getTree());
					RPAREN874 = (Token) match(input, RPAREN,
							FOLLOW_RPAREN_in_alter_table_specification5040);
					if (state.failed)
						return retval;
					if (state.backtracking == 0) {
						RPAREN874_tree = (Object) adaptor.create(RPAREN874);
						adaptor.addChild(root_0, RPAREN874_tree);
					}
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:475:95: (
					// index_option )*
					loop356: do {
						int alt356 = 2;
						int LA356_0 = input.LA(1);

						if ((LA356_0 == WITH || LA356_0 == USING_SYM
								|| LA356_0 == COMMENT_SYM || LA356_0 == KEY_BLOCK_SIZE)) {
							alt356 = 1;
						}

						switch (alt356) {
						case 1:
						// C:\\Users\\grand\\Desktop\\another\\MySQL.g:475:96:
						// index_option
						{
							pushFollow(FOLLOW_index_option_in_alter_table_specification5043);
							index_option875 = index_option();

							state._fsp--;
							if (state.failed)
								return retval;
							if (state.backtracking == 0)
								adaptor.addChild(root_0,
										index_option875.getTree());

						}
							break;

						default:
							break loop356;
						}
					} while (true);

				}

			}
				break;
			case 9:
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:476:4: ( ADD_SYM (
			// CONSTRAINT ( constraint_symbol_name )? )? FOREIGN KEY_SYM (
			// index_name )? LPAREN index_column_names RPAREN
			// reference_definition )
			{
				root_0 = (Object) adaptor.nil();

				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:476:4: ( ADD_SYM
				// ( CONSTRAINT ( constraint_symbol_name )? )? FOREIGN KEY_SYM (
				// index_name )? LPAREN index_column_names RPAREN
				// reference_definition )
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:476:6: ADD_SYM (
				// CONSTRAINT ( constraint_symbol_name )? )? FOREIGN KEY_SYM (
				// index_name )? LPAREN index_column_names RPAREN
				// reference_definition
				{
					ADD_SYM876 = (Token) match(input, ADD_SYM,
							FOLLOW_ADD_SYM_in_alter_table_specification5054);
					if (state.failed)
						return retval;
					if (state.backtracking == 0) {
						ADD_SYM876_tree = (Object) adaptor.create(ADD_SYM876);
						root_0 = (Object) adaptor.becomeRoot(ADD_SYM876_tree,
								root_0);
					}
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:476:15: (
					// CONSTRAINT ( constraint_symbol_name )? )?
					int alt358 = 2;
					int LA358_0 = input.LA(1);

					if ((LA358_0 == CONSTRAINT)) {
						alt358 = 1;
					}
					switch (alt358) {
					case 1:
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:476:16:
					// CONSTRAINT ( constraint_symbol_name )?
					{
						CONSTRAINT877 = (Token) match(input, CONSTRAINT,
								FOLLOW_CONSTRAINT_in_alter_table_specification5058);
						if (state.failed)
							return retval;
						if (state.backtracking == 0) {
							CONSTRAINT877_tree = (Object) adaptor
									.create(CONSTRAINT877);
							adaptor.addChild(root_0, CONSTRAINT877_tree);
						}
						// C:\\Users\\grand\\Desktop\\another\\MySQL.g:476:27: (
						// constraint_symbol_name )?
						int alt357 = 2;
						int LA357_0 = input.LA(1);

						if ((LA357_0 == ID)) {
							alt357 = 1;
						}
						switch (alt357) {
						case 1:
						// C:\\Users\\grand\\Desktop\\another\\MySQL.g:476:28:
						// constraint_symbol_name
						{
							pushFollow(FOLLOW_constraint_symbol_name_in_alter_table_specification5061);
							constraint_symbol_name878 = constraint_symbol_name();

							state._fsp--;
							if (state.failed)
								return retval;
							if (state.backtracking == 0)
								adaptor.addChild(root_0,
										constraint_symbol_name878.getTree());

						}
							break;

						}

					}
						break;

					}

					FOREIGN879 = (Token) match(input, FOREIGN,
							FOLLOW_FOREIGN_in_alter_table_specification5067);
					if (state.failed)
						return retval;
					if (state.backtracking == 0) {
						FOREIGN879_tree = (Object) adaptor.create(FOREIGN879);
						adaptor.addChild(root_0, FOREIGN879_tree);
					}
					KEY_SYM880 = (Token) match(input, KEY_SYM,
							FOLLOW_KEY_SYM_in_alter_table_specification5069);
					if (state.failed)
						return retval;
					if (state.backtracking == 0) {
						KEY_SYM880_tree = (Object) adaptor.create(KEY_SYM880);
						adaptor.addChild(root_0, KEY_SYM880_tree);
					}
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:476:71: (
					// index_name )?
					int alt359 = 2;
					int LA359_0 = input.LA(1);

					if ((LA359_0 == ID)) {
						alt359 = 1;
					}
					switch (alt359) {
					case 1:
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:476:72:
					// index_name
					{
						pushFollow(FOLLOW_index_name_in_alter_table_specification5072);
						index_name881 = index_name();

						state._fsp--;
						if (state.failed)
							return retval;
						if (state.backtracking == 0)
							adaptor.addChild(root_0, index_name881.getTree());

					}
						break;

					}

					LPAREN882 = (Token) match(input, LPAREN,
							FOLLOW_LPAREN_in_alter_table_specification5076);
					if (state.failed)
						return retval;
					if (state.backtracking == 0) {
						LPAREN882_tree = (Object) adaptor.create(LPAREN882);
						adaptor.addChild(root_0, LPAREN882_tree);
					}
					pushFollow(FOLLOW_index_column_names_in_alter_table_specification5078);
					index_column_names883 = index_column_names();

					state._fsp--;
					if (state.failed)
						return retval;
					if (state.backtracking == 0)
						adaptor.addChild(root_0,
								index_column_names883.getTree());
					RPAREN884 = (Token) match(input, RPAREN,
							FOLLOW_RPAREN_in_alter_table_specification5080);
					if (state.failed)
						return retval;
					if (state.backtracking == 0) {
						RPAREN884_tree = (Object) adaptor.create(RPAREN884);
						adaptor.addChild(root_0, RPAREN884_tree);
					}
					pushFollow(FOLLOW_reference_definition_in_alter_table_specification5082);
					reference_definition885 = reference_definition();

					state._fsp--;
					if (state.failed)
						return retval;
					if (state.backtracking == 0)
						adaptor.addChild(root_0,
								reference_definition885.getTree());

				}

			}
				break;
			case 10:
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:477:4: (
			// ALGORITHM_SYM ( EQ_SYM )? ( DEFAULT | INPLACE_SYM | COPY_SYM ) )
			{
				root_0 = (Object) adaptor.nil();

				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:477:4: (
				// ALGORITHM_SYM ( EQ_SYM )? ( DEFAULT | INPLACE_SYM | COPY_SYM
				// ) )
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:477:6:
				// ALGORITHM_SYM ( EQ_SYM )? ( DEFAULT | INPLACE_SYM | COPY_SYM
				// )
				{
					ALGORITHM_SYM886 = (Token) match(input, ALGORITHM_SYM,
							FOLLOW_ALGORITHM_SYM_in_alter_table_specification5091);
					if (state.failed)
						return retval;
					if (state.backtracking == 0) {
						ALGORITHM_SYM886_tree = (Object) adaptor
								.create(ALGORITHM_SYM886);
						adaptor.addChild(root_0, ALGORITHM_SYM886_tree);
					}
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:477:20: (
					// EQ_SYM )?
					int alt360 = 2;
					int LA360_0 = input.LA(1);

					if ((LA360_0 == EQ_SYM)) {
						alt360 = 1;
					}
					switch (alt360) {
					case 1:
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:477:21:
					// EQ_SYM
					{
						EQ_SYM887 = (Token) match(input, EQ_SYM,
								FOLLOW_EQ_SYM_in_alter_table_specification5094);
						if (state.failed)
							return retval;
						if (state.backtracking == 0) {
							EQ_SYM887_tree = (Object) adaptor.create(EQ_SYM887);
							adaptor.addChild(root_0, EQ_SYM887_tree);
						}

					}
						break;

					}

					set888 = (Token) input.LT(1);
					if (input.LA(1) == DEFAULT
							|| (input.LA(1) >= INPLACE_SYM && input.LA(1) <= COPY_SYM)) {
						input.consume();
						if (state.backtracking == 0)
							adaptor.addChild(root_0,
									(Object) adaptor.create(set888));
						state.errorRecovery = false;
						state.failed = false;
					} else {
						if (state.backtracking > 0) {
							state.failed = true;
							return retval;
						}
						MismatchedSetException mse = new MismatchedSetException(
								null, input);
						throw mse;
					}

				}

			}
				break;
			case 11:
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:478:4: ( ALTER (
			// COLUMN_SYM )? column_name ( ( SET_SYM DEFAULT literal_value ) | (
			// DROP DEFAULT ) ) )
			{
				root_0 = (Object) adaptor.nil();

				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:478:4: ( ALTER (
				// COLUMN_SYM )? column_name ( ( SET_SYM DEFAULT literal_value )
				// | ( DROP DEFAULT ) ) )
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:478:6: ALTER (
				// COLUMN_SYM )? column_name ( ( SET_SYM DEFAULT literal_value )
				// | ( DROP DEFAULT ) )
				{
					ALTER889 = (Token) match(input, ALTER,
							FOLLOW_ALTER_in_alter_table_specification5113);
					if (state.failed)
						return retval;
					if (state.backtracking == 0) {
						ALTER889_tree = (Object) adaptor.create(ALTER889);
						adaptor.addChild(root_0, ALTER889_tree);
					}
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:478:12: (
					// COLUMN_SYM )?
					int alt361 = 2;
					int LA361_0 = input.LA(1);

					if ((LA361_0 == COLUMN_SYM)) {
						alt361 = 1;
					}
					switch (alt361) {
					case 1:
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:478:13:
					// COLUMN_SYM
					{
						COLUMN_SYM890 = (Token) match(input, COLUMN_SYM,
								FOLLOW_COLUMN_SYM_in_alter_table_specification5116);
						if (state.failed)
							return retval;
						if (state.backtracking == 0) {
							COLUMN_SYM890_tree = (Object) adaptor
									.create(COLUMN_SYM890);
							adaptor.addChild(root_0, COLUMN_SYM890_tree);
						}

					}
						break;

					}

					pushFollow(FOLLOW_column_name_in_alter_table_specification5120);
					column_name891 = column_name();

					state._fsp--;
					if (state.failed)
						return retval;
					if (state.backtracking == 0)
						adaptor.addChild(root_0, column_name891.getTree());
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:478:38: ( (
					// SET_SYM DEFAULT literal_value ) | ( DROP DEFAULT ) )
					int alt362 = 2;
					int LA362_0 = input.LA(1);

					if ((LA362_0 == SET_SYM)) {
						alt362 = 1;
					} else if ((LA362_0 == DROP)) {
						alt362 = 2;
					} else {
						if (state.backtracking > 0) {
							state.failed = true;
							return retval;
						}
						NoViableAltException nvae = new NoViableAltException(
								"", 362, 0, input);

						throw nvae;
					}
					switch (alt362) {
					case 1:
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:478:39: (
					// SET_SYM DEFAULT literal_value )
					{
						// C:\\Users\\grand\\Desktop\\another\\MySQL.g:478:39: (
						// SET_SYM DEFAULT literal_value )
						// C:\\Users\\grand\\Desktop\\another\\MySQL.g:478:40:
						// SET_SYM DEFAULT literal_value
						{
							SET_SYM892 = (Token) match(input, SET_SYM,
									FOLLOW_SET_SYM_in_alter_table_specification5124);
							if (state.failed)
								return retval;
							if (state.backtracking == 0) {
								SET_SYM892_tree = (Object) adaptor
										.create(SET_SYM892);
								adaptor.addChild(root_0, SET_SYM892_tree);
							}
							DEFAULT893 = (Token) match(input, DEFAULT,
									FOLLOW_DEFAULT_in_alter_table_specification5126);
							if (state.failed)
								return retval;
							if (state.backtracking == 0) {
								DEFAULT893_tree = (Object) adaptor
										.create(DEFAULT893);
								adaptor.addChild(root_0, DEFAULT893_tree);
							}
							pushFollow(FOLLOW_literal_value_in_alter_table_specification5128);
							literal_value894 = literal_value();

							state._fsp--;
							if (state.failed)
								return retval;
							if (state.backtracking == 0)
								adaptor.addChild(root_0,
										literal_value894.getTree());

						}

					}
						break;
					case 2:
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:478:73: (
					// DROP DEFAULT )
					{
						// C:\\Users\\grand\\Desktop\\another\\MySQL.g:478:73: (
						// DROP DEFAULT )
						// C:\\Users\\grand\\Desktop\\another\\MySQL.g:478:74:
						// DROP DEFAULT
						{
							DROP895 = (Token) match(input, DROP,
									FOLLOW_DROP_in_alter_table_specification5134);
							if (state.failed)
								return retval;
							if (state.backtracking == 0) {
								DROP895_tree = (Object) adaptor.create(DROP895);
								adaptor.addChild(root_0, DROP895_tree);
							}
							DEFAULT896 = (Token) match(input, DEFAULT,
									FOLLOW_DEFAULT_in_alter_table_specification5136);
							if (state.failed)
								return retval;
							if (state.backtracking == 0) {
								DEFAULT896_tree = (Object) adaptor
										.create(DEFAULT896);
								adaptor.addChild(root_0, DEFAULT896_tree);
							}

						}

					}
						break;

					}

				}

			}
				break;
			case 12:
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:479:4: ( CHANGE (
			// COLUMN_SYM )? column_name column_name column_definition (
			// FIRST_SYM | AFTER_SYM column_name )? )
			{
				root_0 = (Object) adaptor.nil();

				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:479:4: ( CHANGE (
				// COLUMN_SYM )? column_name column_name column_definition (
				// FIRST_SYM | AFTER_SYM column_name )? )
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:479:6: CHANGE (
				// COLUMN_SYM )? column_name column_name column_definition (
				// FIRST_SYM | AFTER_SYM column_name )?
				{
					CHANGE897 = (Token) match(input, CHANGE,
							FOLLOW_CHANGE_in_alter_table_specification5147);
					if (state.failed)
						return retval;
					if (state.backtracking == 0) {
						CHANGE897_tree = (Object) adaptor.create(CHANGE897);
						adaptor.addChild(root_0, CHANGE897_tree);
					}
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:479:13: (
					// COLUMN_SYM )?
					int alt363 = 2;
					int LA363_0 = input.LA(1);

					if ((LA363_0 == COLUMN_SYM)) {
						alt363 = 1;
					}
					switch (alt363) {
					case 1:
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:479:14:
					// COLUMN_SYM
					{
						COLUMN_SYM898 = (Token) match(input, COLUMN_SYM,
								FOLLOW_COLUMN_SYM_in_alter_table_specification5150);
						if (state.failed)
							return retval;
						if (state.backtracking == 0) {
							COLUMN_SYM898_tree = (Object) adaptor
									.create(COLUMN_SYM898);
							adaptor.addChild(root_0, COLUMN_SYM898_tree);
						}

					}
						break;

					}

					pushFollow(FOLLOW_column_name_in_alter_table_specification5154);
					column_name899 = column_name();

					state._fsp--;
					if (state.failed)
						return retval;
					if (state.backtracking == 0)
						adaptor.addChild(root_0, column_name899.getTree());
					pushFollow(FOLLOW_column_name_in_alter_table_specification5156);
					column_name900 = column_name();

					state._fsp--;
					if (state.failed)
						return retval;
					if (state.backtracking == 0)
						adaptor.addChild(root_0, column_name900.getTree());
					pushFollow(FOLLOW_column_definition_in_alter_table_specification5158);
					column_definition901 = column_definition();

					state._fsp--;
					if (state.failed)
						return retval;
					if (state.backtracking == 0)
						adaptor.addChild(root_0, column_definition901.getTree());
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:479:69: (
					// FIRST_SYM | AFTER_SYM column_name )?
					int alt364 = 3;
					int LA364_0 = input.LA(1);

					if ((LA364_0 == FIRST_SYM)) {
						alt364 = 1;
					} else if ((LA364_0 == AFTER_SYM)) {
						alt364 = 2;
					}
					switch (alt364) {
					case 1:
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:479:70:
					// FIRST_SYM
					{
						FIRST_SYM902 = (Token) match(input, FIRST_SYM,
								FOLLOW_FIRST_SYM_in_alter_table_specification5161);
						if (state.failed)
							return retval;
						if (state.backtracking == 0) {
							FIRST_SYM902_tree = (Object) adaptor
									.create(FIRST_SYM902);
							adaptor.addChild(root_0, FIRST_SYM902_tree);
						}

					}
						break;
					case 2:
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:479:80:
					// AFTER_SYM column_name
					{
						AFTER_SYM903 = (Token) match(input, AFTER_SYM,
								FOLLOW_AFTER_SYM_in_alter_table_specification5163);
						if (state.failed)
							return retval;
						if (state.backtracking == 0) {
							AFTER_SYM903_tree = (Object) adaptor
									.create(AFTER_SYM903);
							adaptor.addChild(root_0, AFTER_SYM903_tree);
						}
						pushFollow(FOLLOW_column_name_in_alter_table_specification5165);
						column_name904 = column_name();

						state._fsp--;
						if (state.failed)
							return retval;
						if (state.backtracking == 0)
							adaptor.addChild(root_0, column_name904.getTree());

					}
						break;

					}

				}

			}
				break;
			case 13:
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:480:4: ( LOCK (
			// EQ_SYM )? ( DEFAULT | NONE_SYM | SHARED_SYM | EXCLUSIVE_SYM ) )
			{
				root_0 = (Object) adaptor.nil();

				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:480:4: ( LOCK (
				// EQ_SYM )? ( DEFAULT | NONE_SYM | SHARED_SYM | EXCLUSIVE_SYM )
				// )
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:480:6: LOCK (
				// EQ_SYM )? ( DEFAULT | NONE_SYM | SHARED_SYM | EXCLUSIVE_SYM )
				{
					LOCK905 = (Token) match(input, LOCK,
							FOLLOW_LOCK_in_alter_table_specification5176);
					if (state.failed)
						return retval;
					if (state.backtracking == 0) {
						LOCK905_tree = (Object) adaptor.create(LOCK905);
						adaptor.addChild(root_0, LOCK905_tree);
					}
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:480:11: (
					// EQ_SYM )?
					int alt365 = 2;
					int LA365_0 = input.LA(1);

					if ((LA365_0 == EQ_SYM)) {
						alt365 = 1;
					}
					switch (alt365) {
					case 1:
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:480:12:
					// EQ_SYM
					{
						EQ_SYM906 = (Token) match(input, EQ_SYM,
								FOLLOW_EQ_SYM_in_alter_table_specification5179);
						if (state.failed)
							return retval;
						if (state.backtracking == 0) {
							EQ_SYM906_tree = (Object) adaptor.create(EQ_SYM906);
							adaptor.addChild(root_0, EQ_SYM906_tree);
						}

					}
						break;

					}

					set907 = (Token) input.LT(1);
					if (input.LA(1) == DEFAULT
							|| (input.LA(1) >= NONE_SYM && input.LA(1) <= EXCLUSIVE_SYM)) {
						input.consume();
						if (state.backtracking == 0)
							adaptor.addChild(root_0,
									(Object) adaptor.create(set907));
						state.errorRecovery = false;
						state.failed = false;
					} else {
						if (state.backtracking > 0) {
							state.failed = true;
							return retval;
						}
						MismatchedSetException mse = new MismatchedSetException(
								null, input);
						throw mse;
					}

				}

			}
				break;
			case 14:
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:481:4: ( MODIFY_SYM (
			// COLUMN_SYM )? column_name column_definition ( FIRST_SYM |
			// AFTER_SYM column_name )? )
			{
				root_0 = (Object) adaptor.nil();

				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:481:4: (
				// MODIFY_SYM ( COLUMN_SYM )? column_name column_definition (
				// FIRST_SYM | AFTER_SYM column_name )? )
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:481:6: MODIFY_SYM
				// ( COLUMN_SYM )? column_name column_definition ( FIRST_SYM |
				// AFTER_SYM column_name )?
				{
					MODIFY_SYM908 = (Token) match(input, MODIFY_SYM,
							FOLLOW_MODIFY_SYM_in_alter_table_specification5200);
					if (state.failed)
						return retval;
					if (state.backtracking == 0) {
						MODIFY_SYM908_tree = (Object) adaptor
								.create(MODIFY_SYM908);
						root_0 = (Object) adaptor.becomeRoot(
								MODIFY_SYM908_tree, root_0);
					}
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:481:18: (
					// COLUMN_SYM )?
					int alt366 = 2;
					int LA366_0 = input.LA(1);

					if ((LA366_0 == COLUMN_SYM)) {
						alt366 = 1;
					}
					switch (alt366) {
					case 1:
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:481:19:
					// COLUMN_SYM
					{
						COLUMN_SYM909 = (Token) match(input, COLUMN_SYM,
								FOLLOW_COLUMN_SYM_in_alter_table_specification5204);
						if (state.failed)
							return retval;
						if (state.backtracking == 0) {
							COLUMN_SYM909_tree = (Object) adaptor
									.create(COLUMN_SYM909);
							adaptor.addChild(root_0, COLUMN_SYM909_tree);
						}

					}
						break;

					}

					pushFollow(FOLLOW_column_name_in_alter_table_specification5208);
					column_name910 = column_name();

					state._fsp--;
					if (state.failed)
						return retval;
					if (state.backtracking == 0)
						adaptor.addChild(root_0, column_name910.getTree());
					pushFollow(FOLLOW_column_definition_in_alter_table_specification5210);
					column_definition911 = column_definition();

					state._fsp--;
					if (state.failed)
						return retval;
					if (state.backtracking == 0)
						adaptor.addChild(root_0, column_definition911.getTree());
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:481:62: (
					// FIRST_SYM | AFTER_SYM column_name )?
					int alt367 = 3;
					int LA367_0 = input.LA(1);

					if ((LA367_0 == FIRST_SYM)) {
						alt367 = 1;
					} else if ((LA367_0 == AFTER_SYM)) {
						alt367 = 2;
					}
					switch (alt367) {
					case 1:
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:481:63:
					// FIRST_SYM
					{
						FIRST_SYM912 = (Token) match(input, FIRST_SYM,
								FOLLOW_FIRST_SYM_in_alter_table_specification5213);
						if (state.failed)
							return retval;
						if (state.backtracking == 0) {
							FIRST_SYM912_tree = (Object) adaptor
									.create(FIRST_SYM912);
							adaptor.addChild(root_0, FIRST_SYM912_tree);
						}

					}
						break;
					case 2:
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:481:75:
					// AFTER_SYM column_name
					{
						AFTER_SYM913 = (Token) match(input, AFTER_SYM,
								FOLLOW_AFTER_SYM_in_alter_table_specification5217);
						if (state.failed)
							return retval;
						if (state.backtracking == 0) {
							AFTER_SYM913_tree = (Object) adaptor
									.create(AFTER_SYM913);
							adaptor.addChild(root_0, AFTER_SYM913_tree);
						}
						pushFollow(FOLLOW_column_name_in_alter_table_specification5219);
						column_name914 = column_name();

						state._fsp--;
						if (state.failed)
							return retval;
						if (state.backtracking == 0)
							adaptor.addChild(root_0, column_name914.getTree());

					}
						break;

					}

				}

			}
				break;
			case 15:
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:482:4: ( DROP (
			// COLUMN_SYM )? column_name )
			{
				root_0 = (Object) adaptor.nil();

				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:482:4: ( DROP (
				// COLUMN_SYM )? column_name )
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:482:6: DROP (
				// COLUMN_SYM )? column_name
				{
					DROP915 = (Token) match(input, DROP,
							FOLLOW_DROP_in_alter_table_specification5230);
					if (state.failed)
						return retval;
					if (state.backtracking == 0) {
						DROP915_tree = (Object) adaptor.create(DROP915);
						root_0 = (Object) adaptor.becomeRoot(DROP915_tree,
								root_0);
					}
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:482:12: (
					// COLUMN_SYM )?
					int alt368 = 2;
					int LA368_0 = input.LA(1);

					if ((LA368_0 == COLUMN_SYM)) {
						alt368 = 1;
					}
					switch (alt368) {
					case 1:
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:482:13:
					// COLUMN_SYM
					{
						COLUMN_SYM916 = (Token) match(input, COLUMN_SYM,
								FOLLOW_COLUMN_SYM_in_alter_table_specification5234);
						if (state.failed)
							return retval;
						if (state.backtracking == 0) {
							COLUMN_SYM916_tree = (Object) adaptor
									.create(COLUMN_SYM916);
							adaptor.addChild(root_0, COLUMN_SYM916_tree);
						}

					}
						break;

					}

					pushFollow(FOLLOW_column_name_in_alter_table_specification5238);
					column_name917 = column_name();

					state._fsp--;
					if (state.failed)
						return retval;
					if (state.backtracking == 0)
						adaptor.addChild(root_0, column_name917.getTree());

				}

			}
				break;
			case 16:
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:483:4: ( DROP
			// PRIMARY_SYM KEY_SYM )
			{
				root_0 = (Object) adaptor.nil();

				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:483:4: ( DROP
				// PRIMARY_SYM KEY_SYM )
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:483:6: DROP
				// PRIMARY_SYM KEY_SYM
				{
					DROP918 = (Token) match(input, DROP,
							FOLLOW_DROP_in_alter_table_specification5247);
					if (state.failed)
						return retval;
					if (state.backtracking == 0) {
						DROP918_tree = (Object) adaptor.create(DROP918);
						root_0 = (Object) adaptor.becomeRoot(DROP918_tree,
								root_0);
					}
					PRIMARY_SYM919 = (Token) match(input, PRIMARY_SYM,
							FOLLOW_PRIMARY_SYM_in_alter_table_specification5250);
					if (state.failed)
						return retval;
					if (state.backtracking == 0) {
						PRIMARY_SYM919_tree = (Object) adaptor
								.create(PRIMARY_SYM919);
						adaptor.addChild(root_0, PRIMARY_SYM919_tree);
					}
					KEY_SYM920 = (Token) match(input, KEY_SYM,
							FOLLOW_KEY_SYM_in_alter_table_specification5252);
					if (state.failed)
						return retval;
					if (state.backtracking == 0) {
						KEY_SYM920_tree = (Object) adaptor.create(KEY_SYM920);
						adaptor.addChild(root_0, KEY_SYM920_tree);
					}

				}

			}
				break;
			case 17:
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:484:4: ( DROP (
			// INDEX_SYM | KEY_SYM ) index_name )
			{
				root_0 = (Object) adaptor.nil();

				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:484:4: ( DROP (
				// INDEX_SYM | KEY_SYM ) index_name )
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:484:6: DROP (
				// INDEX_SYM | KEY_SYM ) index_name
				{
					DROP921 = (Token) match(input, DROP,
							FOLLOW_DROP_in_alter_table_specification5261);
					if (state.failed)
						return retval;
					if (state.backtracking == 0) {
						DROP921_tree = (Object) adaptor.create(DROP921);
						root_0 = (Object) adaptor.becomeRoot(DROP921_tree,
								root_0);
					}
					set922 = (Token) input.LT(1);
					if (input.LA(1) == KEY_SYM || input.LA(1) == INDEX_SYM) {
						input.consume();
						if (state.backtracking == 0)
							adaptor.addChild(root_0,
									(Object) adaptor.create(set922));
						state.errorRecovery = false;
						state.failed = false;
					} else {
						if (state.backtracking > 0) {
							state.failed = true;
							return retval;
						}
						MismatchedSetException mse = new MismatchedSetException(
								null, input);
						throw mse;
					}

					pushFollow(FOLLOW_index_name_in_alter_table_specification5270);
					index_name923 = index_name();

					state._fsp--;
					if (state.failed)
						return retval;
					if (state.backtracking == 0)
						adaptor.addChild(root_0, index_name923.getTree());

				}

			}
				break;
			case 18:
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:485:4: ( DROP FOREIGN
			// KEY_SYM foreign_key_symbol_name )
			{
				root_0 = (Object) adaptor.nil();

				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:485:4: ( DROP
				// FOREIGN KEY_SYM foreign_key_symbol_name )
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:485:6: DROP
				// FOREIGN KEY_SYM foreign_key_symbol_name
				{
					DROP924 = (Token) match(input, DROP,
							FOLLOW_DROP_in_alter_table_specification5279);
					if (state.failed)
						return retval;
					if (state.backtracking == 0) {
						DROP924_tree = (Object) adaptor.create(DROP924);
						root_0 = (Object) adaptor.becomeRoot(DROP924_tree,
								root_0);
					}
					FOREIGN925 = (Token) match(input, FOREIGN,
							FOLLOW_FOREIGN_in_alter_table_specification5282);
					if (state.failed)
						return retval;
					if (state.backtracking == 0) {
						FOREIGN925_tree = (Object) adaptor.create(FOREIGN925);
						adaptor.addChild(root_0, FOREIGN925_tree);
					}
					KEY_SYM926 = (Token) match(input, KEY_SYM,
							FOLLOW_KEY_SYM_in_alter_table_specification5284);
					if (state.failed)
						return retval;
					if (state.backtracking == 0) {
						KEY_SYM926_tree = (Object) adaptor.create(KEY_SYM926);
						adaptor.addChild(root_0, KEY_SYM926_tree);
					}
					pushFollow(FOLLOW_foreign_key_symbol_name_in_alter_table_specification5286);
					foreign_key_symbol_name927 = foreign_key_symbol_name();

					state._fsp--;
					if (state.failed)
						return retval;
					if (state.backtracking == 0)
						adaptor.addChild(root_0,
								foreign_key_symbol_name927.getTree());

				}

			}
				break;
			case 19:
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:486:4: ( DISABLE_SYM
			// KEYS )
			{
				root_0 = (Object) adaptor.nil();

				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:486:4: (
				// DISABLE_SYM KEYS )
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:486:6:
				// DISABLE_SYM KEYS
				{
					DISABLE_SYM928 = (Token) match(input, DISABLE_SYM,
							FOLLOW_DISABLE_SYM_in_alter_table_specification5295);
					if (state.failed)
						return retval;
					if (state.backtracking == 0) {
						DISABLE_SYM928_tree = (Object) adaptor
								.create(DISABLE_SYM928);
						adaptor.addChild(root_0, DISABLE_SYM928_tree);
					}
					KEYS929 = (Token) match(input, KEYS,
							FOLLOW_KEYS_in_alter_table_specification5297);
					if (state.failed)
						return retval;
					if (state.backtracking == 0) {
						KEYS929_tree = (Object) adaptor.create(KEYS929);
						adaptor.addChild(root_0, KEYS929_tree);
					}

				}

			}
				break;
			case 20:
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:487:4: ( ENABLE_SYM
			// KEYS )
			{
				root_0 = (Object) adaptor.nil();

				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:487:4: (
				// ENABLE_SYM KEYS )
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:487:6: ENABLE_SYM
				// KEYS
				{
					ENABLE_SYM930 = (Token) match(input, ENABLE_SYM,
							FOLLOW_ENABLE_SYM_in_alter_table_specification5306);
					if (state.failed)
						return retval;
					if (state.backtracking == 0) {
						ENABLE_SYM930_tree = (Object) adaptor
								.create(ENABLE_SYM930);
						adaptor.addChild(root_0, ENABLE_SYM930_tree);
					}
					KEYS931 = (Token) match(input, KEYS,
							FOLLOW_KEYS_in_alter_table_specification5308);
					if (state.failed)
						return retval;
					if (state.backtracking == 0) {
						KEYS931_tree = (Object) adaptor.create(KEYS931);
						adaptor.addChild(root_0, KEYS931_tree);
					}

				}

			}
				break;
			case 21:
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:488:4: ( RENAME (
			// TO_SYM | AS_SYM )? table_name )
			{
				root_0 = (Object) adaptor.nil();

				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:488:4: ( RENAME (
				// TO_SYM | AS_SYM )? table_name )
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:488:6: RENAME (
				// TO_SYM | AS_SYM )? table_name
				{
					RENAME932 = (Token) match(input, RENAME,
							FOLLOW_RENAME_in_alter_table_specification5317);
					if (state.failed)
						return retval;
					if (state.backtracking == 0) {
						RENAME932_tree = (Object) adaptor.create(RENAME932);
						root_0 = (Object) adaptor.becomeRoot(RENAME932_tree,
								root_0);
					}
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:488:14: (
					// TO_SYM | AS_SYM )?
					int alt369 = 3;
					int LA369_0 = input.LA(1);

					if ((LA369_0 == TO_SYM)) {
						alt369 = 1;
					} else if ((LA369_0 == AS_SYM)) {
						alt369 = 2;
					}
					switch (alt369) {
					case 1:
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:488:15:
					// TO_SYM
					{
						TO_SYM933 = (Token) match(input, TO_SYM,
								FOLLOW_TO_SYM_in_alter_table_specification5321);
						if (state.failed)
							return retval;

					}
						break;
					case 2:
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:488:23:
					// AS_SYM
					{
						AS_SYM934 = (Token) match(input, AS_SYM,
								FOLLOW_AS_SYM_in_alter_table_specification5324);
						if (state.failed)
							return retval;

					}
						break;

					}

					pushFollow(FOLLOW_table_name_in_alter_table_specification5329);
					table_name935 = table_name();

					state._fsp--;
					if (state.failed)
						return retval;
					if (state.backtracking == 0)
						adaptor.addChild(root_0, table_name935.getTree());

				}

			}
				break;
			case 22:
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:489:4: ( ORDER_SYM
			// BY_SYM column_name ( COMMA column_name )* )
			{
				root_0 = (Object) adaptor.nil();

				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:489:4: (
				// ORDER_SYM BY_SYM column_name ( COMMA column_name )* )
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:489:6: ORDER_SYM
				// BY_SYM column_name ( COMMA column_name )*
				{
					ORDER_SYM936 = (Token) match(input, ORDER_SYM,
							FOLLOW_ORDER_SYM_in_alter_table_specification5338);
					if (state.failed)
						return retval;
					if (state.backtracking == 0) {
						ORDER_SYM936_tree = (Object) adaptor
								.create(ORDER_SYM936);
						adaptor.addChild(root_0, ORDER_SYM936_tree);
					}
					BY_SYM937 = (Token) match(input, BY_SYM,
							FOLLOW_BY_SYM_in_alter_table_specification5340);
					if (state.failed)
						return retval;
					if (state.backtracking == 0) {
						BY_SYM937_tree = (Object) adaptor.create(BY_SYM937);
						adaptor.addChild(root_0, BY_SYM937_tree);
					}
					pushFollow(FOLLOW_column_name_in_alter_table_specification5342);
					column_name938 = column_name();

					state._fsp--;
					if (state.failed)
						return retval;
					if (state.backtracking == 0)
						adaptor.addChild(root_0, column_name938.getTree());
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:489:35: (
					// COMMA column_name )*
					loop370: do {
						int alt370 = 2;
						int LA370_0 = input.LA(1);

						if ((LA370_0 == COMMA)) {
							int LA370_1 = input.LA(2);

							if ((LA370_1 == ID)) {
								alt370 = 1;
							}

						}

						switch (alt370) {
						case 1:
						// C:\\Users\\grand\\Desktop\\another\\MySQL.g:489:36:
						// COMMA column_name
						{
							COMMA939 = (Token) match(input, COMMA,
									FOLLOW_COMMA_in_alter_table_specification5345);
							if (state.failed)
								return retval;
							if (state.backtracking == 0) {
								COMMA939_tree = (Object) adaptor
										.create(COMMA939);
								adaptor.addChild(root_0, COMMA939_tree);
							}
							pushFollow(FOLLOW_column_name_in_alter_table_specification5347);
							column_name940 = column_name();

							state._fsp--;
							if (state.failed)
								return retval;
							if (state.backtracking == 0)
								adaptor.addChild(root_0,
										column_name940.getTree());

						}
							break;

						default:
							break loop370;
						}
					} while (true);

				}

			}
				break;
			case 23:
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:490:4: ( CONVERT_SYM
			// TO_SYM CHARACTER_SYM SET_SYM charset_name ( COLLATE_SYM
			// collation_name )? )
			{
				root_0 = (Object) adaptor.nil();

				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:490:4: (
				// CONVERT_SYM TO_SYM CHARACTER_SYM SET_SYM charset_name (
				// COLLATE_SYM collation_name )? )
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:490:6:
				// CONVERT_SYM TO_SYM CHARACTER_SYM SET_SYM charset_name (
				// COLLATE_SYM collation_name )?
				{
					CONVERT_SYM941 = (Token) match(input, CONVERT_SYM,
							FOLLOW_CONVERT_SYM_in_alter_table_specification5358);
					if (state.failed)
						return retval;
					if (state.backtracking == 0) {
						CONVERT_SYM941_tree = (Object) adaptor
								.create(CONVERT_SYM941);
						adaptor.addChild(root_0, CONVERT_SYM941_tree);
					}
					TO_SYM942 = (Token) match(input, TO_SYM,
							FOLLOW_TO_SYM_in_alter_table_specification5360);
					if (state.failed)
						return retval;
					if (state.backtracking == 0) {
						TO_SYM942_tree = (Object) adaptor.create(TO_SYM942);
						adaptor.addChild(root_0, TO_SYM942_tree);
					}
					CHARACTER_SYM943 = (Token) match(input, CHARACTER_SYM,
							FOLLOW_CHARACTER_SYM_in_alter_table_specification5362);
					if (state.failed)
						return retval;
					if (state.backtracking == 0) {
						CHARACTER_SYM943_tree = (Object) adaptor
								.create(CHARACTER_SYM943);
						adaptor.addChild(root_0, CHARACTER_SYM943_tree);
					}
					SET_SYM944 = (Token) match(input, SET_SYM,
							FOLLOW_SET_SYM_in_alter_table_specification5364);
					if (state.failed)
						return retval;
					if (state.backtracking == 0) {
						SET_SYM944_tree = (Object) adaptor.create(SET_SYM944);
						adaptor.addChild(root_0, SET_SYM944_tree);
					}
					pushFollow(FOLLOW_charset_name_in_alter_table_specification5366);
					charset_name945 = charset_name();

					state._fsp--;
					if (state.failed)
						return retval;
					if (state.backtracking == 0)
						adaptor.addChild(root_0, charset_name945.getTree());
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:490:60: (
					// COLLATE_SYM collation_name )?
					int alt371 = 2;
					int LA371_0 = input.LA(1);

					if ((LA371_0 == COLLATE_SYM)) {
						alt371 = 1;
					}
					switch (alt371) {
					case 1:
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:490:61:
					// COLLATE_SYM collation_name
					{
						COLLATE_SYM946 = (Token) match(input, COLLATE_SYM,
								FOLLOW_COLLATE_SYM_in_alter_table_specification5369);
						if (state.failed)
							return retval;
						if (state.backtracking == 0) {
							COLLATE_SYM946_tree = (Object) adaptor
									.create(COLLATE_SYM946);
							adaptor.addChild(root_0, COLLATE_SYM946_tree);
						}
						pushFollow(FOLLOW_collation_name_in_alter_table_specification5371);
						collation_name947 = collation_name();

						state._fsp--;
						if (state.failed)
							return retval;
						if (state.backtracking == 0)
							adaptor.addChild(root_0,
									collation_name947.getTree());

					}
						break;

					}

				}

			}
				break;
			case 24:
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:491:4: ( ( DEFAULT )?
			// CHARACTER_SYM SET_SYM ( EQ_SYM )? charset_name ( COLLATE_SYM (
			// EQ_SYM )? collation_name )? )
			{
				root_0 = (Object) adaptor.nil();

				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:491:4: ( (
				// DEFAULT )? CHARACTER_SYM SET_SYM ( EQ_SYM )? charset_name (
				// COLLATE_SYM ( EQ_SYM )? collation_name )? )
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:491:6: ( DEFAULT
				// )? CHARACTER_SYM SET_SYM ( EQ_SYM )? charset_name (
				// COLLATE_SYM ( EQ_SYM )? collation_name )?
				{
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:491:6: (
					// DEFAULT )?
					int alt372 = 2;
					int LA372_0 = input.LA(1);

					if ((LA372_0 == DEFAULT)) {
						alt372 = 1;
					}
					switch (alt372) {
					case 1:
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:491:7:
					// DEFAULT
					{
						DEFAULT948 = (Token) match(input, DEFAULT,
								FOLLOW_DEFAULT_in_alter_table_specification5383);
						if (state.failed)
							return retval;
						if (state.backtracking == 0) {
							DEFAULT948_tree = (Object) adaptor
									.create(DEFAULT948);
							adaptor.addChild(root_0, DEFAULT948_tree);
						}

					}
						break;

					}

					CHARACTER_SYM949 = (Token) match(input, CHARACTER_SYM,
							FOLLOW_CHARACTER_SYM_in_alter_table_specification5387);
					if (state.failed)
						return retval;
					if (state.backtracking == 0) {
						CHARACTER_SYM949_tree = (Object) adaptor
								.create(CHARACTER_SYM949);
						adaptor.addChild(root_0, CHARACTER_SYM949_tree);
					}
					SET_SYM950 = (Token) match(input, SET_SYM,
							FOLLOW_SET_SYM_in_alter_table_specification5389);
					if (state.failed)
						return retval;
					if (state.backtracking == 0) {
						SET_SYM950_tree = (Object) adaptor.create(SET_SYM950);
						adaptor.addChild(root_0, SET_SYM950_tree);
					}
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:491:39: (
					// EQ_SYM )?
					int alt373 = 2;
					int LA373_0 = input.LA(1);

					if ((LA373_0 == EQ_SYM)) {
						alt373 = 1;
					}
					switch (alt373) {
					case 1:
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:491:40:
					// EQ_SYM
					{
						EQ_SYM951 = (Token) match(input, EQ_SYM,
								FOLLOW_EQ_SYM_in_alter_table_specification5392);
						if (state.failed)
							return retval;
						if (state.backtracking == 0) {
							EQ_SYM951_tree = (Object) adaptor.create(EQ_SYM951);
							adaptor.addChild(root_0, EQ_SYM951_tree);
						}

					}
						break;

					}

					pushFollow(FOLLOW_charset_name_in_alter_table_specification5396);
					charset_name952 = charset_name();

					state._fsp--;
					if (state.failed)
						return retval;
					if (state.backtracking == 0)
						adaptor.addChild(root_0, charset_name952.getTree());
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:491:62: (
					// COLLATE_SYM ( EQ_SYM )? collation_name )?
					int alt375 = 2;
					int LA375_0 = input.LA(1);

					if ((LA375_0 == COLLATE_SYM)) {
						alt375 = 1;
					}
					switch (alt375) {
					case 1:
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:491:63:
					// COLLATE_SYM ( EQ_SYM )? collation_name
					{
						COLLATE_SYM953 = (Token) match(input, COLLATE_SYM,
								FOLLOW_COLLATE_SYM_in_alter_table_specification5399);
						if (state.failed)
							return retval;
						if (state.backtracking == 0) {
							COLLATE_SYM953_tree = (Object) adaptor
									.create(COLLATE_SYM953);
							adaptor.addChild(root_0, COLLATE_SYM953_tree);
						}
						// C:\\Users\\grand\\Desktop\\another\\MySQL.g:491:75: (
						// EQ_SYM )?
						int alt374 = 2;
						int LA374_0 = input.LA(1);

						if ((LA374_0 == EQ_SYM)) {
							alt374 = 1;
						}
						switch (alt374) {
						case 1:
						// C:\\Users\\grand\\Desktop\\another\\MySQL.g:491:76:
						// EQ_SYM
						{
							EQ_SYM954 = (Token) match(input, EQ_SYM,
									FOLLOW_EQ_SYM_in_alter_table_specification5402);
							if (state.failed)
								return retval;
							if (state.backtracking == 0) {
								EQ_SYM954_tree = (Object) adaptor
										.create(EQ_SYM954);
								adaptor.addChild(root_0, EQ_SYM954_tree);
							}

						}
							break;

						}

						pushFollow(FOLLOW_collation_name_in_alter_table_specification5406);
						collation_name955 = collation_name();

						state._fsp--;
						if (state.failed)
							return retval;
						if (state.backtracking == 0)
							adaptor.addChild(root_0,
									collation_name955.getTree());

					}
						break;

					}

				}

			}
				break;
			case 25:
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:492:4: ( DISCARD
			// TABLESPACE )
			{
				root_0 = (Object) adaptor.nil();

				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:492:4: ( DISCARD
				// TABLESPACE )
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:492:6: DISCARD
				// TABLESPACE
				{
					DISCARD956 = (Token) match(input, DISCARD,
							FOLLOW_DISCARD_in_alter_table_specification5417);
					if (state.failed)
						return retval;
					if (state.backtracking == 0) {
						DISCARD956_tree = (Object) adaptor.create(DISCARD956);
						adaptor.addChild(root_0, DISCARD956_tree);
					}
					TABLESPACE957 = (Token) match(input, TABLESPACE,
							FOLLOW_TABLESPACE_in_alter_table_specification5419);
					if (state.failed)
						return retval;
					if (state.backtracking == 0) {
						TABLESPACE957_tree = (Object) adaptor
								.create(TABLESPACE957);
						adaptor.addChild(root_0, TABLESPACE957_tree);
					}

				}

			}
				break;
			case 26:
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:493:4: ( IMPORT
			// TABLESPACE )
			{
				root_0 = (Object) adaptor.nil();

				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:493:4: ( IMPORT
				// TABLESPACE )
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:493:6: IMPORT
				// TABLESPACE
				{
					IMPORT958 = (Token) match(input, IMPORT,
							FOLLOW_IMPORT_in_alter_table_specification5428);
					if (state.failed)
						return retval;
					if (state.backtracking == 0) {
						IMPORT958_tree = (Object) adaptor.create(IMPORT958);
						adaptor.addChild(root_0, IMPORT958_tree);
					}
					TABLESPACE959 = (Token) match(input, TABLESPACE,
							FOLLOW_TABLESPACE_in_alter_table_specification5430);
					if (state.failed)
						return retval;
					if (state.backtracking == 0) {
						TABLESPACE959_tree = (Object) adaptor
								.create(TABLESPACE959);
						adaptor.addChild(root_0, TABLESPACE959_tree);
					}

				}

			}
				break;
			case 27:
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:494:4: ( FORCE_SYM )
			{
				root_0 = (Object) adaptor.nil();

				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:494:4: (
				// FORCE_SYM )
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:494:6: FORCE_SYM
				{
					FORCE_SYM960 = (Token) match(input, FORCE_SYM,
							FOLLOW_FORCE_SYM_in_alter_table_specification5439);
					if (state.failed)
						return retval;
					if (state.backtracking == 0) {
						FORCE_SYM960_tree = (Object) adaptor
								.create(FORCE_SYM960);
						adaptor.addChild(root_0, FORCE_SYM960_tree);
					}

				}

			}
				break;
			case 28:
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:495:4: ( ADD_SYM
			// PARTITION_SYM LPAREN partition_definition RPAREN )
			{
				root_0 = (Object) adaptor.nil();

				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:495:4: ( ADD_SYM
				// PARTITION_SYM LPAREN partition_definition RPAREN )
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:495:6: ADD_SYM
				// PARTITION_SYM LPAREN partition_definition RPAREN
				{
					ADD_SYM961 = (Token) match(input, ADD_SYM,
							FOLLOW_ADD_SYM_in_alter_table_specification5448);
					if (state.failed)
						return retval;
					if (state.backtracking == 0) {
						ADD_SYM961_tree = (Object) adaptor.create(ADD_SYM961);
						adaptor.addChild(root_0, ADD_SYM961_tree);
					}
					PARTITION_SYM962 = (Token) match(input, PARTITION_SYM,
							FOLLOW_PARTITION_SYM_in_alter_table_specification5450);
					if (state.failed)
						return retval;
					if (state.backtracking == 0) {
						PARTITION_SYM962_tree = (Object) adaptor
								.create(PARTITION_SYM962);
						adaptor.addChild(root_0, PARTITION_SYM962_tree);
					}
					LPAREN963 = (Token) match(input, LPAREN,
							FOLLOW_LPAREN_in_alter_table_specification5452);
					if (state.failed)
						return retval;
					if (state.backtracking == 0) {
						LPAREN963_tree = (Object) adaptor.create(LPAREN963);
						adaptor.addChild(root_0, LPAREN963_tree);
					}
					pushFollow(FOLLOW_partition_definition_in_alter_table_specification5454);
					partition_definition964 = partition_definition();

					state._fsp--;
					if (state.failed)
						return retval;
					if (state.backtracking == 0)
						adaptor.addChild(root_0,
								partition_definition964.getTree());
					RPAREN965 = (Token) match(input, RPAREN,
							FOLLOW_RPAREN_in_alter_table_specification5456);
					if (state.failed)
						return retval;
					if (state.backtracking == 0) {
						RPAREN965_tree = (Object) adaptor.create(RPAREN965);
						adaptor.addChild(root_0, RPAREN965_tree);
					}

				}

			}
				break;
			case 29:
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:496:4: ( DROP
			// PARTITION_SYM partition_names )
			{
				root_0 = (Object) adaptor.nil();

				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:496:4: ( DROP
				// PARTITION_SYM partition_names )
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:496:6: DROP
				// PARTITION_SYM partition_names
				{
					DROP966 = (Token) match(input, DROP,
							FOLLOW_DROP_in_alter_table_specification5465);
					if (state.failed)
						return retval;
					if (state.backtracking == 0) {
						DROP966_tree = (Object) adaptor.create(DROP966);
						adaptor.addChild(root_0, DROP966_tree);
					}
					PARTITION_SYM967 = (Token) match(input, PARTITION_SYM,
							FOLLOW_PARTITION_SYM_in_alter_table_specification5467);
					if (state.failed)
						return retval;
					if (state.backtracking == 0) {
						PARTITION_SYM967_tree = (Object) adaptor
								.create(PARTITION_SYM967);
						adaptor.addChild(root_0, PARTITION_SYM967_tree);
					}
					pushFollow(FOLLOW_partition_names_in_alter_table_specification5469);
					partition_names968 = partition_names();

					state._fsp--;
					if (state.failed)
						return retval;
					if (state.backtracking == 0)
						adaptor.addChild(root_0, partition_names968.getTree());

				}

			}
				break;
			case 30:
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:497:4: ( TRUNCATE
			// PARTITION_SYM ( partition_names | ALL ) )
			{
				root_0 = (Object) adaptor.nil();

				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:497:4: ( TRUNCATE
				// PARTITION_SYM ( partition_names | ALL ) )
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:497:6: TRUNCATE
				// PARTITION_SYM ( partition_names | ALL )
				{
					TRUNCATE969 = (Token) match(input, TRUNCATE,
							FOLLOW_TRUNCATE_in_alter_table_specification5478);
					if (state.failed)
						return retval;
					if (state.backtracking == 0) {
						TRUNCATE969_tree = (Object) adaptor.create(TRUNCATE969);
						adaptor.addChild(root_0, TRUNCATE969_tree);
					}
					PARTITION_SYM970 = (Token) match(input, PARTITION_SYM,
							FOLLOW_PARTITION_SYM_in_alter_table_specification5480);
					if (state.failed)
						return retval;
					if (state.backtracking == 0) {
						PARTITION_SYM970_tree = (Object) adaptor
								.create(PARTITION_SYM970);
						adaptor.addChild(root_0, PARTITION_SYM970_tree);
					}
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:497:29: (
					// partition_names | ALL )
					int alt376 = 2;
					int LA376_0 = input.LA(1);

					if ((LA376_0 == ID)) {
						alt376 = 1;
					} else if ((LA376_0 == ALL)) {
						alt376 = 2;
					} else {
						if (state.backtracking > 0) {
							state.failed = true;
							return retval;
						}
						NoViableAltException nvae = new NoViableAltException(
								"", 376, 0, input);

						throw nvae;
					}
					switch (alt376) {
					case 1:
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:497:30:
					// partition_names
					{
						pushFollow(FOLLOW_partition_names_in_alter_table_specification5483);
						partition_names971 = partition_names();

						state._fsp--;
						if (state.failed)
							return retval;
						if (state.backtracking == 0)
							adaptor.addChild(root_0,
									partition_names971.getTree());

					}
						break;
					case 2:
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:497:48: ALL
					{
						ALL972 = (Token) match(input, ALL,
								FOLLOW_ALL_in_alter_table_specification5487);
						if (state.failed)
							return retval;
						if (state.backtracking == 0) {
							ALL972_tree = (Object) adaptor.create(ALL972);
							adaptor.addChild(root_0, ALL972_tree);
						}

					}
						break;

					}

				}

			}
				break;
			case 31:
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:498:4: ( COALESCE
			// PARTITION_SYM INTEGER_NUM )
			{
				root_0 = (Object) adaptor.nil();

				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:498:4: ( COALESCE
				// PARTITION_SYM INTEGER_NUM )
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:498:6: COALESCE
				// PARTITION_SYM INTEGER_NUM
				{
					COALESCE973 = (Token) match(input, COALESCE,
							FOLLOW_COALESCE_in_alter_table_specification5497);
					if (state.failed)
						return retval;
					if (state.backtracking == 0) {
						COALESCE973_tree = (Object) adaptor.create(COALESCE973);
						adaptor.addChild(root_0, COALESCE973_tree);
					}
					PARTITION_SYM974 = (Token) match(input, PARTITION_SYM,
							FOLLOW_PARTITION_SYM_in_alter_table_specification5499);
					if (state.failed)
						return retval;
					if (state.backtracking == 0) {
						PARTITION_SYM974_tree = (Object) adaptor
								.create(PARTITION_SYM974);
						adaptor.addChild(root_0, PARTITION_SYM974_tree);
					}
					INTEGER_NUM975 = (Token) match(input, INTEGER_NUM,
							FOLLOW_INTEGER_NUM_in_alter_table_specification5501);
					if (state.failed)
						return retval;
					if (state.backtracking == 0) {
						INTEGER_NUM975_tree = (Object) adaptor
								.create(INTEGER_NUM975);
						adaptor.addChild(root_0, INTEGER_NUM975_tree);
					}

				}

			}
				break;
			case 32:
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:499:4: (
			// REORGANIZE_SYM PARTITION_SYM partition_names INTO LPAREN
			// partition_definition ( COMMA partition_definition )* RPAREN )
			{
				root_0 = (Object) adaptor.nil();

				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:499:4: (
				// REORGANIZE_SYM PARTITION_SYM partition_names INTO LPAREN
				// partition_definition ( COMMA partition_definition )* RPAREN )
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:499:6:
				// REORGANIZE_SYM PARTITION_SYM partition_names INTO LPAREN
				// partition_definition ( COMMA partition_definition )* RPAREN
				{
					REORGANIZE_SYM976 = (Token) match(input, REORGANIZE_SYM,
							FOLLOW_REORGANIZE_SYM_in_alter_table_specification5510);
					if (state.failed)
						return retval;
					if (state.backtracking == 0) {
						REORGANIZE_SYM976_tree = (Object) adaptor
								.create(REORGANIZE_SYM976);
						adaptor.addChild(root_0, REORGANIZE_SYM976_tree);
					}
					PARTITION_SYM977 = (Token) match(input, PARTITION_SYM,
							FOLLOW_PARTITION_SYM_in_alter_table_specification5512);
					if (state.failed)
						return retval;
					if (state.backtracking == 0) {
						PARTITION_SYM977_tree = (Object) adaptor
								.create(PARTITION_SYM977);
						adaptor.addChild(root_0, PARTITION_SYM977_tree);
					}
					pushFollow(FOLLOW_partition_names_in_alter_table_specification5514);
					partition_names978 = partition_names();

					state._fsp--;
					if (state.failed)
						return retval;
					if (state.backtracking == 0)
						adaptor.addChild(root_0, partition_names978.getTree());
					INTO979 = (Token) match(input, INTO,
							FOLLOW_INTO_in_alter_table_specification5516);
					if (state.failed)
						return retval;
					if (state.backtracking == 0) {
						INTO979_tree = (Object) adaptor.create(INTO979);
						adaptor.addChild(root_0, INTO979_tree);
					}
					LPAREN980 = (Token) match(input, LPAREN,
							FOLLOW_LPAREN_in_alter_table_specification5518);
					if (state.failed)
						return retval;
					if (state.backtracking == 0) {
						LPAREN980_tree = (Object) adaptor.create(LPAREN980);
						adaptor.addChild(root_0, LPAREN980_tree);
					}
					pushFollow(FOLLOW_partition_definition_in_alter_table_specification5520);
					partition_definition981 = partition_definition();

					state._fsp--;
					if (state.failed)
						return retval;
					if (state.backtracking == 0)
						adaptor.addChild(root_0,
								partition_definition981.getTree());
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:499:84: (
					// COMMA partition_definition )*
					loop377: do {
						int alt377 = 2;
						int LA377_0 = input.LA(1);

						if ((LA377_0 == COMMA)) {
							alt377 = 1;
						}

						switch (alt377) {
						case 1:
						// C:\\Users\\grand\\Desktop\\another\\MySQL.g:499:85:
						// COMMA partition_definition
						{
							COMMA982 = (Token) match(input, COMMA,
									FOLLOW_COMMA_in_alter_table_specification5523);
							if (state.failed)
								return retval;
							if (state.backtracking == 0) {
								COMMA982_tree = (Object) adaptor
										.create(COMMA982);
								adaptor.addChild(root_0, COMMA982_tree);
							}
							pushFollow(FOLLOW_partition_definition_in_alter_table_specification5525);
							partition_definition983 = partition_definition();

							state._fsp--;
							if (state.failed)
								return retval;
							if (state.backtracking == 0)
								adaptor.addChild(root_0,
										partition_definition983.getTree());

						}
							break;

						default:
							break loop377;
						}
					} while (true);

					RPAREN984 = (Token) match(input, RPAREN,
							FOLLOW_RPAREN_in_alter_table_specification5529);
					if (state.failed)
						return retval;
					if (state.backtracking == 0) {
						RPAREN984_tree = (Object) adaptor.create(RPAREN984);
						adaptor.addChild(root_0, RPAREN984_tree);
					}

				}

			}
				break;
			case 33:
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:500:4: ( EXCHANGE_SYM
			// PARTITION_SYM partition_name WITH TABLE table_name )
			{
				root_0 = (Object) adaptor.nil();

				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:500:4: (
				// EXCHANGE_SYM PARTITION_SYM partition_name WITH TABLE
				// table_name )
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:500:6:
				// EXCHANGE_SYM PARTITION_SYM partition_name WITH TABLE
				// table_name
				{
					EXCHANGE_SYM985 = (Token) match(input, EXCHANGE_SYM,
							FOLLOW_EXCHANGE_SYM_in_alter_table_specification5538);
					if (state.failed)
						return retval;
					if (state.backtracking == 0) {
						EXCHANGE_SYM985_tree = (Object) adaptor
								.create(EXCHANGE_SYM985);
						adaptor.addChild(root_0, EXCHANGE_SYM985_tree);
					}
					PARTITION_SYM986 = (Token) match(input, PARTITION_SYM,
							FOLLOW_PARTITION_SYM_in_alter_table_specification5540);
					if (state.failed)
						return retval;
					if (state.backtracking == 0) {
						PARTITION_SYM986_tree = (Object) adaptor
								.create(PARTITION_SYM986);
						adaptor.addChild(root_0, PARTITION_SYM986_tree);
					}
					pushFollow(FOLLOW_partition_name_in_alter_table_specification5542);
					partition_name987 = partition_name();

					state._fsp--;
					if (state.failed)
						return retval;
					if (state.backtracking == 0)
						adaptor.addChild(root_0, partition_name987.getTree());
					WITH988 = (Token) match(input, WITH,
							FOLLOW_WITH_in_alter_table_specification5544);
					if (state.failed)
						return retval;
					if (state.backtracking == 0) {
						WITH988_tree = (Object) adaptor.create(WITH988);
						adaptor.addChild(root_0, WITH988_tree);
					}
					TABLE989 = (Token) match(input, TABLE,
							FOLLOW_TABLE_in_alter_table_specification5546);
					if (state.failed)
						return retval;
					if (state.backtracking == 0) {
						TABLE989_tree = (Object) adaptor.create(TABLE989);
						adaptor.addChild(root_0, TABLE989_tree);
					}
					pushFollow(FOLLOW_table_name_in_alter_table_specification5548);
					table_name990 = table_name();

					state._fsp--;
					if (state.failed)
						return retval;
					if (state.backtracking == 0)
						adaptor.addChild(root_0, table_name990.getTree());

				}

			}
				break;
			case 34:
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:501:4: ( ANALYZE_SYM
			// PARTITION_SYM ( partition_names | ALL ) )
			{
				root_0 = (Object) adaptor.nil();

				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:501:4: (
				// ANALYZE_SYM PARTITION_SYM ( partition_names | ALL ) )
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:501:6:
				// ANALYZE_SYM PARTITION_SYM ( partition_names | ALL )
				{
					ANALYZE_SYM991 = (Token) match(input, ANALYZE_SYM,
							FOLLOW_ANALYZE_SYM_in_alter_table_specification5557);
					if (state.failed)
						return retval;
					if (state.backtracking == 0) {
						ANALYZE_SYM991_tree = (Object) adaptor
								.create(ANALYZE_SYM991);
						adaptor.addChild(root_0, ANALYZE_SYM991_tree);
					}
					PARTITION_SYM992 = (Token) match(input, PARTITION_SYM,
							FOLLOW_PARTITION_SYM_in_alter_table_specification5559);
					if (state.failed)
						return retval;
					if (state.backtracking == 0) {
						PARTITION_SYM992_tree = (Object) adaptor
								.create(PARTITION_SYM992);
						adaptor.addChild(root_0, PARTITION_SYM992_tree);
					}
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:501:32: (
					// partition_names | ALL )
					int alt378 = 2;
					int LA378_0 = input.LA(1);

					if ((LA378_0 == ID)) {
						alt378 = 1;
					} else if ((LA378_0 == ALL)) {
						alt378 = 2;
					} else {
						if (state.backtracking > 0) {
							state.failed = true;
							return retval;
						}
						NoViableAltException nvae = new NoViableAltException(
								"", 378, 0, input);

						throw nvae;
					}
					switch (alt378) {
					case 1:
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:501:33:
					// partition_names
					{
						pushFollow(FOLLOW_partition_names_in_alter_table_specification5562);
						partition_names993 = partition_names();

						state._fsp--;
						if (state.failed)
							return retval;
						if (state.backtracking == 0)
							adaptor.addChild(root_0,
									partition_names993.getTree());

					}
						break;
					case 2:
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:501:51: ALL
					{
						ALL994 = (Token) match(input, ALL,
								FOLLOW_ALL_in_alter_table_specification5566);
						if (state.failed)
							return retval;
						if (state.backtracking == 0) {
							ALL994_tree = (Object) adaptor.create(ALL994);
							adaptor.addChild(root_0, ALL994_tree);
						}

					}
						break;

					}

				}

			}
				break;
			case 35:
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:502:4: ( CHECK_SYM
			// PARTITION_SYM ( partition_names | ALL ) )
			{
				root_0 = (Object) adaptor.nil();

				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:502:4: (
				// CHECK_SYM PARTITION_SYM ( partition_names | ALL ) )
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:502:6: CHECK_SYM
				// PARTITION_SYM ( partition_names | ALL )
				{
					CHECK_SYM995 = (Token) match(input, CHECK_SYM,
							FOLLOW_CHECK_SYM_in_alter_table_specification5576);
					if (state.failed)
						return retval;
					if (state.backtracking == 0) {
						CHECK_SYM995_tree = (Object) adaptor
								.create(CHECK_SYM995);
						adaptor.addChild(root_0, CHECK_SYM995_tree);
					}
					PARTITION_SYM996 = (Token) match(input, PARTITION_SYM,
							FOLLOW_PARTITION_SYM_in_alter_table_specification5578);
					if (state.failed)
						return retval;
					if (state.backtracking == 0) {
						PARTITION_SYM996_tree = (Object) adaptor
								.create(PARTITION_SYM996);
						adaptor.addChild(root_0, PARTITION_SYM996_tree);
					}
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:502:30: (
					// partition_names | ALL )
					int alt379 = 2;
					int LA379_0 = input.LA(1);

					if ((LA379_0 == ID)) {
						alt379 = 1;
					} else if ((LA379_0 == ALL)) {
						alt379 = 2;
					} else {
						if (state.backtracking > 0) {
							state.failed = true;
							return retval;
						}
						NoViableAltException nvae = new NoViableAltException(
								"", 379, 0, input);

						throw nvae;
					}
					switch (alt379) {
					case 1:
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:502:31:
					// partition_names
					{
						pushFollow(FOLLOW_partition_names_in_alter_table_specification5581);
						partition_names997 = partition_names();

						state._fsp--;
						if (state.failed)
							return retval;
						if (state.backtracking == 0)
							adaptor.addChild(root_0,
									partition_names997.getTree());

					}
						break;
					case 2:
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:502:49: ALL
					{
						ALL998 = (Token) match(input, ALL,
								FOLLOW_ALL_in_alter_table_specification5585);
						if (state.failed)
							return retval;
						if (state.backtracking == 0) {
							ALL998_tree = (Object) adaptor.create(ALL998);
							adaptor.addChild(root_0, ALL998_tree);
						}

					}
						break;

					}

				}

			}
				break;
			case 36:
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:503:4: ( OPTIMIZE
			// PARTITION_SYM ( partition_names | ALL ) )
			{
				root_0 = (Object) adaptor.nil();

				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:503:4: ( OPTIMIZE
				// PARTITION_SYM ( partition_names | ALL ) )
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:503:6: OPTIMIZE
				// PARTITION_SYM ( partition_names | ALL )
				{
					OPTIMIZE999 = (Token) match(input, OPTIMIZE,
							FOLLOW_OPTIMIZE_in_alter_table_specification5595);
					if (state.failed)
						return retval;
					if (state.backtracking == 0) {
						OPTIMIZE999_tree = (Object) adaptor.create(OPTIMIZE999);
						adaptor.addChild(root_0, OPTIMIZE999_tree);
					}
					PARTITION_SYM1000 = (Token) match(input, PARTITION_SYM,
							FOLLOW_PARTITION_SYM_in_alter_table_specification5597);
					if (state.failed)
						return retval;
					if (state.backtracking == 0) {
						PARTITION_SYM1000_tree = (Object) adaptor
								.create(PARTITION_SYM1000);
						adaptor.addChild(root_0, PARTITION_SYM1000_tree);
					}
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:503:29: (
					// partition_names | ALL )
					int alt380 = 2;
					int LA380_0 = input.LA(1);

					if ((LA380_0 == ID)) {
						alt380 = 1;
					} else if ((LA380_0 == ALL)) {
						alt380 = 2;
					} else {
						if (state.backtracking > 0) {
							state.failed = true;
							return retval;
						}
						NoViableAltException nvae = new NoViableAltException(
								"", 380, 0, input);

						throw nvae;
					}
					switch (alt380) {
					case 1:
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:503:30:
					// partition_names
					{
						pushFollow(FOLLOW_partition_names_in_alter_table_specification5600);
						partition_names1001 = partition_names();

						state._fsp--;
						if (state.failed)
							return retval;
						if (state.backtracking == 0)
							adaptor.addChild(root_0,
									partition_names1001.getTree());

					}
						break;
					case 2:
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:503:48: ALL
					{
						ALL1002 = (Token) match(input, ALL,
								FOLLOW_ALL_in_alter_table_specification5604);
						if (state.failed)
							return retval;
						if (state.backtracking == 0) {
							ALL1002_tree = (Object) adaptor.create(ALL1002);
							adaptor.addChild(root_0, ALL1002_tree);
						}

					}
						break;

					}

				}

			}
				break;
			case 37:
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:504:4: ( REBUILD_SYM
			// PARTITION_SYM ( partition_names | ALL ) )
			{
				root_0 = (Object) adaptor.nil();

				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:504:4: (
				// REBUILD_SYM PARTITION_SYM ( partition_names | ALL ) )
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:504:6:
				// REBUILD_SYM PARTITION_SYM ( partition_names | ALL )
				{
					REBUILD_SYM1003 = (Token) match(input, REBUILD_SYM,
							FOLLOW_REBUILD_SYM_in_alter_table_specification5614);
					if (state.failed)
						return retval;
					if (state.backtracking == 0) {
						REBUILD_SYM1003_tree = (Object) adaptor
								.create(REBUILD_SYM1003);
						adaptor.addChild(root_0, REBUILD_SYM1003_tree);
					}
					PARTITION_SYM1004 = (Token) match(input, PARTITION_SYM,
							FOLLOW_PARTITION_SYM_in_alter_table_specification5616);
					if (state.failed)
						return retval;
					if (state.backtracking == 0) {
						PARTITION_SYM1004_tree = (Object) adaptor
								.create(PARTITION_SYM1004);
						adaptor.addChild(root_0, PARTITION_SYM1004_tree);
					}
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:504:32: (
					// partition_names | ALL )
					int alt381 = 2;
					int LA381_0 = input.LA(1);

					if ((LA381_0 == ID)) {
						alt381 = 1;
					} else if ((LA381_0 == ALL)) {
						alt381 = 2;
					} else {
						if (state.backtracking > 0) {
							state.failed = true;
							return retval;
						}
						NoViableAltException nvae = new NoViableAltException(
								"", 381, 0, input);

						throw nvae;
					}
					switch (alt381) {
					case 1:
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:504:33:
					// partition_names
					{
						pushFollow(FOLLOW_partition_names_in_alter_table_specification5619);
						partition_names1005 = partition_names();

						state._fsp--;
						if (state.failed)
							return retval;
						if (state.backtracking == 0)
							adaptor.addChild(root_0,
									partition_names1005.getTree());

					}
						break;
					case 2:
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:504:51: ALL
					{
						ALL1006 = (Token) match(input, ALL,
								FOLLOW_ALL_in_alter_table_specification5623);
						if (state.failed)
							return retval;
						if (state.backtracking == 0) {
							ALL1006_tree = (Object) adaptor.create(ALL1006);
							adaptor.addChild(root_0, ALL1006_tree);
						}

					}
						break;

					}

				}

			}
				break;
			case 38:
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:505:4: ( REPAIR
			// PARTITION_SYM ( partition_names | ALL ) )
			{
				root_0 = (Object) adaptor.nil();

				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:505:4: ( REPAIR
				// PARTITION_SYM ( partition_names | ALL ) )
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:505:6: REPAIR
				// PARTITION_SYM ( partition_names | ALL )
				{
					REPAIR1007 = (Token) match(input, REPAIR,
							FOLLOW_REPAIR_in_alter_table_specification5633);
					if (state.failed)
						return retval;
					if (state.backtracking == 0) {
						REPAIR1007_tree = (Object) adaptor.create(REPAIR1007);
						adaptor.addChild(root_0, REPAIR1007_tree);
					}
					PARTITION_SYM1008 = (Token) match(input, PARTITION_SYM,
							FOLLOW_PARTITION_SYM_in_alter_table_specification5635);
					if (state.failed)
						return retval;
					if (state.backtracking == 0) {
						PARTITION_SYM1008_tree = (Object) adaptor
								.create(PARTITION_SYM1008);
						adaptor.addChild(root_0, PARTITION_SYM1008_tree);
					}
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:505:27: (
					// partition_names | ALL )
					int alt382 = 2;
					int LA382_0 = input.LA(1);

					if ((LA382_0 == ID)) {
						alt382 = 1;
					} else if ((LA382_0 == ALL)) {
						alt382 = 2;
					} else {
						if (state.backtracking > 0) {
							state.failed = true;
							return retval;
						}
						NoViableAltException nvae = new NoViableAltException(
								"", 382, 0, input);

						throw nvae;
					}
					switch (alt382) {
					case 1:
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:505:28:
					// partition_names
					{
						pushFollow(FOLLOW_partition_names_in_alter_table_specification5638);
						partition_names1009 = partition_names();

						state._fsp--;
						if (state.failed)
							return retval;
						if (state.backtracking == 0)
							adaptor.addChild(root_0,
									partition_names1009.getTree());

					}
						break;
					case 2:
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:505:46: ALL
					{
						ALL1010 = (Token) match(input, ALL,
								FOLLOW_ALL_in_alter_table_specification5642);
						if (state.failed)
							return retval;
						if (state.backtracking == 0) {
							ALL1010_tree = (Object) adaptor.create(ALL1010);
							adaptor.addChild(root_0, ALL1010_tree);
						}

					}
						break;

					}

				}

			}
				break;
			case 39:
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:506:4: ( REMOVE_SYM
			// PARTITIONING_SYM )
			{
				root_0 = (Object) adaptor.nil();

				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:506:4: (
				// REMOVE_SYM PARTITIONING_SYM )
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:506:6: REMOVE_SYM
				// PARTITIONING_SYM
				{
					REMOVE_SYM1011 = (Token) match(input, REMOVE_SYM,
							FOLLOW_REMOVE_SYM_in_alter_table_specification5652);
					if (state.failed)
						return retval;
					if (state.backtracking == 0) {
						REMOVE_SYM1011_tree = (Object) adaptor
								.create(REMOVE_SYM1011);
						adaptor.addChild(root_0, REMOVE_SYM1011_tree);
					}
					PARTITIONING_SYM1012 = (Token) match(input,
							PARTITIONING_SYM,
							FOLLOW_PARTITIONING_SYM_in_alter_table_specification5654);
					if (state.failed)
						return retval;
					if (state.backtracking == 0) {
						PARTITIONING_SYM1012_tree = (Object) adaptor
								.create(PARTITIONING_SYM1012);
						adaptor.addChild(root_0, PARTITIONING_SYM1012_tree);
					}

				}

			}
				break;

			}
			retval.stop = input.LT(-1);

			if (state.backtracking == 0) {

				retval.tree = (Object) adaptor.rulePostProcessing(root_0);
				adaptor.setTokenBoundaries(retval.tree, retval.start,
						retval.stop);
			}
		} catch (RecognitionException re) {
			reportError(re);
			recover(input, re);
			retval.tree = (Object) adaptor.errorNode(input, retval.start,
					input.LT(-1), re);

		} finally {
		}
		return retval;
	}

	// $ANTLR end "alter_table_specification"

	public static class index_column_names_return extends ParserRuleReturnScope {
		Object tree;

		public Object getTree() {
			return tree;
		}
	};

	// $ANTLR start "index_column_names"
	// C:\\Users\\grand\\Desktop\\another\\MySQL.g:508:1: index_column_names :
	// index_column_name ( COMMA index_column_name )* ;
	public final MySQLParser.index_column_names_return index_column_names()
			throws RecognitionException {
		MySQLParser.index_column_names_return retval = new MySQLParser.index_column_names_return();
		retval.start = input.LT(1);

		Object root_0 = null;

		Token COMMA1014 = null;
		MySQLParser.index_column_name_return index_column_name1013 = null;

		MySQLParser.index_column_name_return index_column_name1015 = null;

		Object COMMA1014_tree = null;

		try {
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:508:19: (
			// index_column_name ( COMMA index_column_name )* )
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:509:2:
			// index_column_name ( COMMA index_column_name )*
			{
				root_0 = (Object) adaptor.nil();

				pushFollow(FOLLOW_index_column_name_in_index_column_names5664);
				index_column_name1013 = index_column_name();

				state._fsp--;
				if (state.failed)
					return retval;
				if (state.backtracking == 0)
					adaptor.addChild(root_0, index_column_name1013.getTree());
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:509:20: ( COMMA
				// index_column_name )*
				loop384: do {
					int alt384 = 2;
					int LA384_0 = input.LA(1);

					if ((LA384_0 == COMMA)) {
						alt384 = 1;
					}

					switch (alt384) {
					case 1:
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:509:21: COMMA
					// index_column_name
					{
						COMMA1014 = (Token) match(input, COMMA,
								FOLLOW_COMMA_in_index_column_names5667);
						if (state.failed)
							return retval;
						if (state.backtracking == 0) {
							COMMA1014_tree = (Object) adaptor.create(COMMA1014);
							adaptor.addChild(root_0, COMMA1014_tree);
						}
						pushFollow(FOLLOW_index_column_name_in_index_column_names5669);
						index_column_name1015 = index_column_name();

						state._fsp--;
						if (state.failed)
							return retval;
						if (state.backtracking == 0)
							adaptor.addChild(root_0,
									index_column_name1015.getTree());

					}
						break;

					default:
						break loop384;
					}
				} while (true);

			}

			retval.stop = input.LT(-1);

			if (state.backtracking == 0) {

				retval.tree = (Object) adaptor.rulePostProcessing(root_0);
				adaptor.setTokenBoundaries(retval.tree, retval.start,
						retval.stop);
			}
		} catch (RecognitionException re) {
			reportError(re);
			recover(input, re);
			retval.tree = (Object) adaptor.errorNode(input, retval.start,
					input.LT(-1), re);

		} finally {
		}
		return retval;
	}

	// $ANTLR end "index_column_names"

	public static class index_type_return extends ParserRuleReturnScope {
		Object tree;

		public Object getTree() {
			return tree;
		}
	};

	// $ANTLR start "index_type"
	// C:\\Users\\grand\\Desktop\\another\\MySQL.g:510:1: index_type : USING_SYM
	// ( BTREE_SYM | HASH_SYM ) ;
	public final MySQLParser.index_type_return index_type()
			throws RecognitionException {
		MySQLParser.index_type_return retval = new MySQLParser.index_type_return();
		retval.start = input.LT(1);

		Object root_0 = null;

		Token USING_SYM1016 = null;
		Token set1017 = null;

		Object USING_SYM1016_tree = null;
		Object set1017_tree = null;

		try {
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:510:11: ( USING_SYM (
			// BTREE_SYM | HASH_SYM ) )
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:511:2: USING_SYM (
			// BTREE_SYM | HASH_SYM )
			{
				root_0 = (Object) adaptor.nil();

				USING_SYM1016 = (Token) match(input, USING_SYM,
						FOLLOW_USING_SYM_in_index_type5678);
				if (state.failed)
					return retval;
				if (state.backtracking == 0) {
					USING_SYM1016_tree = (Object) adaptor.create(USING_SYM1016);
					adaptor.addChild(root_0, USING_SYM1016_tree);
				}
				set1017 = (Token) input.LT(1);
				if (input.LA(1) == HASH_SYM || input.LA(1) == BTREE_SYM) {
					input.consume();
					if (state.backtracking == 0)
						adaptor.addChild(root_0,
								(Object) adaptor.create(set1017));
					state.errorRecovery = false;
					state.failed = false;
				} else {
					if (state.backtracking > 0) {
						state.failed = true;
						return retval;
					}
					MismatchedSetException mse = new MismatchedSetException(
							null, input);
					throw mse;
				}

			}

			retval.stop = input.LT(-1);

			if (state.backtracking == 0) {

				retval.tree = (Object) adaptor.rulePostProcessing(root_0);
				adaptor.setTokenBoundaries(retval.tree, retval.start,
						retval.stop);
			}
		} catch (RecognitionException re) {
			reportError(re);
			recover(input, re);
			retval.tree = (Object) adaptor.errorNode(input, retval.start,
					input.LT(-1), re);

		} finally {
		}
		return retval;
	}

	// $ANTLR end "index_type"

	public static class index_option_return extends ParserRuleReturnScope {
		Object tree;

		public Object getTree() {
			return tree;
		}
	};

	// $ANTLR start "index_option"
	// C:\\Users\\grand\\Desktop\\another\\MySQL.g:513:1: index_option : ( (
	// KEY_BLOCK_SIZE ( EQ_SYM )? INTEGER_NUM ) | index_type | ( WITH PARSER_SYM
	// parser_name ) | ( COMMENT_SYM TEXT_STRING ) );
	public final MySQLParser.index_option_return index_option()
			throws RecognitionException {
		MySQLParser.index_option_return retval = new MySQLParser.index_option_return();
		retval.start = input.LT(1);

		Object root_0 = null;

		Token KEY_BLOCK_SIZE1018 = null;
		Token EQ_SYM1019 = null;
		Token INTEGER_NUM1020 = null;
		Token WITH1022 = null;
		Token PARSER_SYM1023 = null;
		Token COMMENT_SYM1025 = null;
		Token TEXT_STRING1026 = null;
		MySQLParser.index_type_return index_type1021 = null;

		MySQLParser.parser_name_return parser_name1024 = null;

		Object KEY_BLOCK_SIZE1018_tree = null;
		Object EQ_SYM1019_tree = null;
		Object INTEGER_NUM1020_tree = null;
		Object WITH1022_tree = null;
		Object PARSER_SYM1023_tree = null;
		Object COMMENT_SYM1025_tree = null;
		Object TEXT_STRING1026_tree = null;

		try {
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:513:13: ( (
			// KEY_BLOCK_SIZE ( EQ_SYM )? INTEGER_NUM ) | index_type | ( WITH
			// PARSER_SYM parser_name ) | ( COMMENT_SYM TEXT_STRING ) )
			int alt386 = 4;
			switch (input.LA(1)) {
			case KEY_BLOCK_SIZE: {
				alt386 = 1;
			}
				break;
			case USING_SYM: {
				alt386 = 2;
			}
				break;
			case WITH: {
				alt386 = 3;
			}
				break;
			case COMMENT_SYM: {
				alt386 = 4;
			}
				break;
			default:
				if (state.backtracking > 0) {
					state.failed = true;
					return retval;
				}
				NoViableAltException nvae = new NoViableAltException("", 386,
						0, input);

				throw nvae;
			}

			switch (alt386) {
			case 1:
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:514:4: (
			// KEY_BLOCK_SIZE ( EQ_SYM )? INTEGER_NUM )
			{
				root_0 = (Object) adaptor.nil();

				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:514:4: (
				// KEY_BLOCK_SIZE ( EQ_SYM )? INTEGER_NUM )
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:514:6:
				// KEY_BLOCK_SIZE ( EQ_SYM )? INTEGER_NUM
				{
					KEY_BLOCK_SIZE1018 = (Token) match(input, KEY_BLOCK_SIZE,
							FOLLOW_KEY_BLOCK_SIZE_in_index_option5698);
					if (state.failed)
						return retval;
					if (state.backtracking == 0) {
						KEY_BLOCK_SIZE1018_tree = (Object) adaptor
								.create(KEY_BLOCK_SIZE1018);
						adaptor.addChild(root_0, KEY_BLOCK_SIZE1018_tree);
					}
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:514:21: (
					// EQ_SYM )?
					int alt385 = 2;
					int LA385_0 = input.LA(1);

					if ((LA385_0 == EQ_SYM)) {
						alt385 = 1;
					}
					switch (alt385) {
					case 1:
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:514:22:
					// EQ_SYM
					{
						EQ_SYM1019 = (Token) match(input, EQ_SYM,
								FOLLOW_EQ_SYM_in_index_option5701);
						if (state.failed)
							return retval;
						if (state.backtracking == 0) {
							EQ_SYM1019_tree = (Object) adaptor
									.create(EQ_SYM1019);
							adaptor.addChild(root_0, EQ_SYM1019_tree);
						}

					}
						break;

					}

					INTEGER_NUM1020 = (Token) match(input, INTEGER_NUM,
							FOLLOW_INTEGER_NUM_in_index_option5705);
					if (state.failed)
						return retval;
					if (state.backtracking == 0) {
						INTEGER_NUM1020_tree = (Object) adaptor
								.create(INTEGER_NUM1020);
						adaptor.addChild(root_0, INTEGER_NUM1020_tree);
					}

				}

			}
				break;
			case 2:
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:515:4: index_type
			{
				root_0 = (Object) adaptor.nil();

				pushFollow(FOLLOW_index_type_in_index_option5712);
				index_type1021 = index_type();

				state._fsp--;
				if (state.failed)
					return retval;
				if (state.backtracking == 0)
					adaptor.addChild(root_0, index_type1021.getTree());

			}
				break;
			case 3:
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:516:4: ( WITH
			// PARSER_SYM parser_name )
			{
				root_0 = (Object) adaptor.nil();

				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:516:4: ( WITH
				// PARSER_SYM parser_name )
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:516:6: WITH
				// PARSER_SYM parser_name
				{
					WITH1022 = (Token) match(input, WITH,
							FOLLOW_WITH_in_index_option5719);
					if (state.failed)
						return retval;
					if (state.backtracking == 0) {
						WITH1022_tree = (Object) adaptor.create(WITH1022);
						adaptor.addChild(root_0, WITH1022_tree);
					}
					PARSER_SYM1023 = (Token) match(input, PARSER_SYM,
							FOLLOW_PARSER_SYM_in_index_option5721);
					if (state.failed)
						return retval;
					if (state.backtracking == 0) {
						PARSER_SYM1023_tree = (Object) adaptor
								.create(PARSER_SYM1023);
						adaptor.addChild(root_0, PARSER_SYM1023_tree);
					}
					pushFollow(FOLLOW_parser_name_in_index_option5723);
					parser_name1024 = parser_name();

					state._fsp--;
					if (state.failed)
						return retval;
					if (state.backtracking == 0)
						adaptor.addChild(root_0, parser_name1024.getTree());

				}

			}
				break;
			case 4:
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:517:4: ( COMMENT_SYM
			// TEXT_STRING )
			{
				root_0 = (Object) adaptor.nil();

				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:517:4: (
				// COMMENT_SYM TEXT_STRING )
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:517:6:
				// COMMENT_SYM TEXT_STRING
				{
					COMMENT_SYM1025 = (Token) match(input, COMMENT_SYM,
							FOLLOW_COMMENT_SYM_in_index_option5732);
					if (state.failed)
						return retval;
					if (state.backtracking == 0) {
						COMMENT_SYM1025_tree = (Object) adaptor
								.create(COMMENT_SYM1025);
						adaptor.addChild(root_0, COMMENT_SYM1025_tree);
					}
					TEXT_STRING1026 = (Token) match(input, TEXT_STRING,
							FOLLOW_TEXT_STRING_in_index_option5734);
					if (state.failed)
						return retval;
					if (state.backtracking == 0) {
						TEXT_STRING1026_tree = (Object) adaptor
								.create(TEXT_STRING1026);
						adaptor.addChild(root_0, TEXT_STRING1026_tree);
					}

				}

			}
				break;

			}
			retval.stop = input.LT(-1);

			if (state.backtracking == 0) {

				retval.tree = (Object) adaptor.rulePostProcessing(root_0);
				adaptor.setTokenBoundaries(retval.tree, retval.start,
						retval.stop);
			}
		} catch (RecognitionException re) {
			reportError(re);
			recover(input, re);
			retval.tree = (Object) adaptor.errorNode(input, retval.start,
					input.LT(-1), re);

		} finally {
		}
		return retval;
	}

	// $ANTLR end "index_option"

	public static class column_definitions_return extends ParserRuleReturnScope {
		Object tree;

		public Object getTree() {
			return tree;
		}
	};

	// $ANTLR start "column_definitions"
	// C:\\Users\\grand\\Desktop\\another\\MySQL.g:519:1: column_definitions :
	// column_name column_definition ( COMMA column_name column_definition )* ;
	public final MySQLParser.column_definitions_return column_definitions()
			throws RecognitionException {
		MySQLParser.column_definitions_return retval = new MySQLParser.column_definitions_return();
		retval.start = input.LT(1);

		Object root_0 = null;

		Token COMMA1029 = null;
		MySQLParser.column_name_return column_name1027 = null;

		MySQLParser.column_definition_return column_definition1028 = null;

		MySQLParser.column_name_return column_name1030 = null;

		MySQLParser.column_definition_return column_definition1031 = null;

		Object COMMA1029_tree = null;

		try {
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:519:19: ( column_name
			// column_definition ( COMMA column_name column_definition )* )
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:520:2: column_name
			// column_definition ( COMMA column_name column_definition )*
			{
				root_0 = (Object) adaptor.nil();

				pushFollow(FOLLOW_column_name_in_column_definitions5744);
				column_name1027 = column_name();

				state._fsp--;
				if (state.failed)
					return retval;
				if (state.backtracking == 0)
					adaptor.addChild(root_0, column_name1027.getTree());
				pushFollow(FOLLOW_column_definition_in_column_definitions5746);
				column_definition1028 = column_definition();

				state._fsp--;
				if (state.failed)
					return retval;
				if (state.backtracking == 0)
					adaptor.addChild(root_0, column_definition1028.getTree());
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:520:32: ( COMMA
				// column_name column_definition )*
				loop387: do {
					int alt387 = 2;
					int LA387_0 = input.LA(1);

					if ((LA387_0 == COMMA)) {
						alt387 = 1;
					}

					switch (alt387) {
					case 1:
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:520:33: COMMA
					// column_name column_definition
					{
						COMMA1029 = (Token) match(input, COMMA,
								FOLLOW_COMMA_in_column_definitions5749);
						if (state.failed)
							return retval;
						if (state.backtracking == 0) {
							COMMA1029_tree = (Object) adaptor.create(COMMA1029);
							adaptor.addChild(root_0, COMMA1029_tree);
						}
						pushFollow(FOLLOW_column_name_in_column_definitions5751);
						column_name1030 = column_name();

						state._fsp--;
						if (state.failed)
							return retval;
						if (state.backtracking == 0)
							adaptor.addChild(root_0, column_name1030.getTree());
						pushFollow(FOLLOW_column_definition_in_column_definitions5753);
						column_definition1031 = column_definition();

						state._fsp--;
						if (state.failed)
							return retval;
						if (state.backtracking == 0)
							adaptor.addChild(root_0,
									column_definition1031.getTree());

					}
						break;

					default:
						break loop387;
					}
				} while (true);

			}

			retval.stop = input.LT(-1);

			if (state.backtracking == 0) {

				retval.tree = (Object) adaptor.rulePostProcessing(root_0);
				adaptor.setTokenBoundaries(retval.tree, retval.start,
						retval.stop);
			}
		} catch (RecognitionException re) {
			reportError(re);
			recover(input, re);
			retval.tree = (Object) adaptor.errorNode(input, retval.start,
					input.LT(-1), re);

		} finally {
		}
		return retval;
	}

	// $ANTLR end "column_definitions"

	public static class rename_table_statement_return extends
			ParserRuleReturnScope {
		Object tree;

		public Object getTree() {
			return tree;
		}
	};

	// $ANTLR start "rename_table_statement"
	// C:\\Users\\grand\\Desktop\\another\\MySQL.g:525:1: rename_table_statement
	// : RENAME TABLE table_name TO_SYM table_name ( COMMA table_name TO_SYM
	// table_name )* -> ^( RENAME ( ^( TO_SYM table_name table_name ) )+ ) ;
	public final MySQLParser.rename_table_statement_return rename_table_statement()
			throws RecognitionException {
		MySQLParser.rename_table_statement_return retval = new MySQLParser.rename_table_statement_return();
		retval.start = input.LT(1);

		Object root_0 = null;

		Token RENAME1032 = null;
		Token TABLE1033 = null;
		Token TO_SYM1035 = null;
		Token COMMA1037 = null;
		Token TO_SYM1039 = null;
		MySQLParser.table_name_return table_name1034 = null;

		MySQLParser.table_name_return table_name1036 = null;

		MySQLParser.table_name_return table_name1038 = null;

		MySQLParser.table_name_return table_name1040 = null;

		Object RENAME1032_tree = null;
		Object TABLE1033_tree = null;
		Object TO_SYM1035_tree = null;
		Object COMMA1037_tree = null;
		Object TO_SYM1039_tree = null;
		RewriteRuleTokenStream stream_TABLE = new RewriteRuleTokenStream(
				adaptor, "token TABLE");
		RewriteRuleTokenStream stream_TO_SYM = new RewriteRuleTokenStream(
				adaptor, "token TO_SYM");
		RewriteRuleTokenStream stream_COMMA = new RewriteRuleTokenStream(
				adaptor, "token COMMA");
		RewriteRuleTokenStream stream_RENAME = new RewriteRuleTokenStream(
				adaptor, "token RENAME");
		RewriteRuleSubtreeStream stream_table_name = new RewriteRuleSubtreeStream(
				adaptor, "rule table_name");
		try {
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:525:23: ( RENAME
			// TABLE table_name TO_SYM table_name ( COMMA table_name TO_SYM
			// table_name )* -> ^( RENAME ( ^( TO_SYM table_name table_name ) )+
			// ) )
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:526:2: RENAME TABLE
			// table_name TO_SYM table_name ( COMMA table_name TO_SYM table_name
			// )*
			{
				RENAME1032 = (Token) match(input, RENAME,
						FOLLOW_RENAME_in_rename_table_statement5766);
				if (state.failed)
					return retval;
				if (state.backtracking == 0)
					stream_RENAME.add(RENAME1032);

				TABLE1033 = (Token) match(input, TABLE,
						FOLLOW_TABLE_in_rename_table_statement5768);
				if (state.failed)
					return retval;
				if (state.backtracking == 0)
					stream_TABLE.add(TABLE1033);

				pushFollow(FOLLOW_table_name_in_rename_table_statement5772);
				table_name1034 = table_name();

				state._fsp--;
				if (state.failed)
					return retval;
				if (state.backtracking == 0)
					stream_table_name.add(table_name1034.getTree());
				TO_SYM1035 = (Token) match(input, TO_SYM,
						FOLLOW_TO_SYM_in_rename_table_statement5774);
				if (state.failed)
					return retval;
				if (state.backtracking == 0)
					stream_TO_SYM.add(TO_SYM1035);

				pushFollow(FOLLOW_table_name_in_rename_table_statement5776);
				table_name1036 = table_name();

				state._fsp--;
				if (state.failed)
					return retval;
				if (state.backtracking == 0)
					stream_table_name.add(table_name1036.getTree());
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:528:2: ( COMMA
				// table_name TO_SYM table_name )*
				loop388: do {
					int alt388 = 2;
					int LA388_0 = input.LA(1);

					if ((LA388_0 == COMMA)) {
						alt388 = 1;
					}

					switch (alt388) {
					case 1:
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:528:3: COMMA
					// table_name TO_SYM table_name
					{
						COMMA1037 = (Token) match(input, COMMA,
								FOLLOW_COMMA_in_rename_table_statement5780);
						if (state.failed)
							return retval;
						if (state.backtracking == 0)
							stream_COMMA.add(COMMA1037);

						pushFollow(FOLLOW_table_name_in_rename_table_statement5782);
						table_name1038 = table_name();

						state._fsp--;
						if (state.failed)
							return retval;
						if (state.backtracking == 0)
							stream_table_name.add(table_name1038.getTree());
						TO_SYM1039 = (Token) match(input, TO_SYM,
								FOLLOW_TO_SYM_in_rename_table_statement5784);
						if (state.failed)
							return retval;
						if (state.backtracking == 0)
							stream_TO_SYM.add(TO_SYM1039);

						pushFollow(FOLLOW_table_name_in_rename_table_statement5786);
						table_name1040 = table_name();

						state._fsp--;
						if (state.failed)
							return retval;
						if (state.backtracking == 0)
							stream_table_name.add(table_name1040.getTree());

					}
						break;

					default:
						break loop388;
					}
				} while (true);

				// AST REWRITE
				// elements: table_name, RENAME, table_name, TO_SYM
				// token labels:
				// rule labels: retval
				// token list labels:
				// rule list labels:
				// wildcard labels:
				if (state.backtracking == 0) {
					retval.tree = root_0;
					RewriteRuleSubtreeStream stream_retval = new RewriteRuleSubtreeStream(
							adaptor, "rule retval",
							retval != null ? retval.tree : null);

					root_0 = (Object) adaptor.nil();
					// 528:40: -> ^( RENAME ( ^( TO_SYM table_name table_name )
					// )+ )
					{
						// C:\\Users\\grand\\Desktop\\another\\MySQL.g:528:43:
						// ^( RENAME ( ^( TO_SYM table_name table_name ) )+ )
						{
							Object root_1 = (Object) adaptor.nil();
							root_1 = (Object) adaptor.becomeRoot(
									stream_RENAME.nextNode(), root_1);

							if (!(stream_table_name.hasNext()
									|| stream_table_name.hasNext() || stream_TO_SYM
										.hasNext())) {
								throw new RewriteEarlyExitException();
							}
							while (stream_table_name.hasNext()
									|| stream_table_name.hasNext()
									|| stream_TO_SYM.hasNext()) {
								// C:\\Users\\grand\\Desktop\\another\\MySQL.g:528:52:
								// ^( TO_SYM table_name table_name )
								{
									Object root_2 = (Object) adaptor.nil();
									root_2 = (Object) adaptor.becomeRoot(
											stream_TO_SYM.nextNode(), root_2);

									adaptor.addChild(root_2,
											stream_table_name.nextTree());
									adaptor.addChild(root_2,
											stream_table_name.nextTree());

									adaptor.addChild(root_1, root_2);
								}

							}
							stream_table_name.reset();
							stream_table_name.reset();
							stream_TO_SYM.reset();

							adaptor.addChild(root_0, root_1);
						}

					}

					retval.tree = root_0;
				}
			}

			retval.stop = input.LT(-1);

			if (state.backtracking == 0) {

				retval.tree = (Object) adaptor.rulePostProcessing(root_0);
				adaptor.setTokenBoundaries(retval.tree, retval.start,
						retval.stop);
			}
		} catch (RecognitionException re) {
			reportError(re);
			recover(input, re);
			retval.tree = (Object) adaptor.errorNode(input, retval.start,
					input.LT(-1), re);

		} finally {
		}
		return retval;
	}

	// $ANTLR end "rename_table_statement"

	public static class drop_table_statement_return extends
			ParserRuleReturnScope {
		Object tree;

		public Object getTree() {
			return tree;
		}
	};

	// $ANTLR start "drop_table_statement"
	// C:\\Users\\grand\\Desktop\\another\\MySQL.g:533:1: drop_table_statement :
	// DROP ( TEMPORARY )? TABLE ( IF EXISTS )? table_name ( COMMA table_name )*
	// ( RESTRICT | CASCADE )? -> ( ^( DROP table_name ) )+ ;
	public final MySQLParser.drop_table_statement_return drop_table_statement()
			throws RecognitionException {
		MySQLParser.drop_table_statement_return retval = new MySQLParser.drop_table_statement_return();
		retval.start = input.LT(1);

		Object root_0 = null;

		Token DROP1041 = null;
		Token TEMPORARY1042 = null;
		Token TABLE1043 = null;
		Token IF1044 = null;
		Token EXISTS1045 = null;
		Token COMMA1047 = null;
		Token RESTRICT1049 = null;
		Token CASCADE1050 = null;
		MySQLParser.table_name_return table_name1046 = null;

		MySQLParser.table_name_return table_name1048 = null;

		Object DROP1041_tree = null;
		Object TEMPORARY1042_tree = null;
		Object TABLE1043_tree = null;
		Object IF1044_tree = null;
		Object EXISTS1045_tree = null;
		Object COMMA1047_tree = null;
		Object RESTRICT1049_tree = null;
		Object CASCADE1050_tree = null;
		RewriteRuleTokenStream stream_TABLE = new RewriteRuleTokenStream(
				adaptor, "token TABLE");
		RewriteRuleTokenStream stream_EXISTS = new RewriteRuleTokenStream(
				adaptor, "token EXISTS");
		RewriteRuleTokenStream stream_DROP = new RewriteRuleTokenStream(
				adaptor, "token DROP");
		RewriteRuleTokenStream stream_CASCADE = new RewriteRuleTokenStream(
				adaptor, "token CASCADE");
		RewriteRuleTokenStream stream_COMMA = new RewriteRuleTokenStream(
				adaptor, "token COMMA");
		RewriteRuleTokenStream stream_TEMPORARY = new RewriteRuleTokenStream(
				adaptor, "token TEMPORARY");
		RewriteRuleTokenStream stream_RESTRICT = new RewriteRuleTokenStream(
				adaptor, "token RESTRICT");
		RewriteRuleTokenStream stream_IF = new RewriteRuleTokenStream(adaptor,
				"token IF");
		RewriteRuleSubtreeStream stream_table_name = new RewriteRuleSubtreeStream(
				adaptor, "rule table_name");
		try {
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:533:21: ( DROP (
			// TEMPORARY )? TABLE ( IF EXISTS )? table_name ( COMMA table_name
			// )* ( RESTRICT | CASCADE )? -> ( ^( DROP table_name ) )+ )
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:534:2: DROP (
			// TEMPORARY )? TABLE ( IF EXISTS )? table_name ( COMMA table_name
			// )* ( RESTRICT | CASCADE )?
			{
				DROP1041 = (Token) match(input, DROP,
						FOLLOW_DROP_in_drop_table_statement5814);
				if (state.failed)
					return retval;
				if (state.backtracking == 0)
					stream_DROP.add(DROP1041);

				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:534:7: (
				// TEMPORARY )?
				int alt389 = 2;
				int LA389_0 = input.LA(1);

				if ((LA389_0 == TEMPORARY)) {
					alt389 = 1;
				}
				switch (alt389) {
				case 1:
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:534:8: TEMPORARY
				{
					TEMPORARY1042 = (Token) match(input, TEMPORARY,
							FOLLOW_TEMPORARY_in_drop_table_statement5817);
					if (state.failed)
						return retval;
					if (state.backtracking == 0)
						stream_TEMPORARY.add(TEMPORARY1042);

				}
					break;

				}

				TABLE1043 = (Token) match(input, TABLE,
						FOLLOW_TABLE_in_drop_table_statement5821);
				if (state.failed)
					return retval;
				if (state.backtracking == 0)
					stream_TABLE.add(TABLE1043);

				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:534:26: ( IF
				// EXISTS )?
				int alt390 = 2;
				int LA390_0 = input.LA(1);

				if ((LA390_0 == IF)) {
					alt390 = 1;
				}
				switch (alt390) {
				case 1:
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:534:27: IF EXISTS
				{
					IF1044 = (Token) match(input, IF,
							FOLLOW_IF_in_drop_table_statement5824);
					if (state.failed)
						return retval;
					if (state.backtracking == 0)
						stream_IF.add(IF1044);

					EXISTS1045 = (Token) match(input, EXISTS,
							FOLLOW_EXISTS_in_drop_table_statement5826);
					if (state.failed)
						return retval;
					if (state.backtracking == 0)
						stream_EXISTS.add(EXISTS1045);

				}
					break;

				}

				pushFollow(FOLLOW_table_name_in_drop_table_statement5831);
				table_name1046 = table_name();

				state._fsp--;
				if (state.failed)
					return retval;
				if (state.backtracking == 0)
					stream_table_name.add(table_name1046.getTree());
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:535:13: ( COMMA
				// table_name )*
				loop391: do {
					int alt391 = 2;
					int LA391_0 = input.LA(1);

					if ((LA391_0 == COMMA)) {
						alt391 = 1;
					}

					switch (alt391) {
					case 1:
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:535:14: COMMA
					// table_name
					{
						COMMA1047 = (Token) match(input, COMMA,
								FOLLOW_COMMA_in_drop_table_statement5834);
						if (state.failed)
							return retval;
						if (state.backtracking == 0)
							stream_COMMA.add(COMMA1047);

						pushFollow(FOLLOW_table_name_in_drop_table_statement5836);
						table_name1048 = table_name();

						state._fsp--;
						if (state.failed)
							return retval;
						if (state.backtracking == 0)
							stream_table_name.add(table_name1048.getTree());

					}
						break;

					default:
						break loop391;
					}
				} while (true);

				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:536:2: ( RESTRICT
				// | CASCADE )?
				int alt392 = 3;
				int LA392_0 = input.LA(1);

				if ((LA392_0 == RESTRICT)) {
					alt392 = 1;
				} else if ((LA392_0 == CASCADE)) {
					alt392 = 2;
				}
				switch (alt392) {
				case 1:
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:536:3: RESTRICT
				{
					RESTRICT1049 = (Token) match(input, RESTRICT,
							FOLLOW_RESTRICT_in_drop_table_statement5842);
					if (state.failed)
						return retval;
					if (state.backtracking == 0)
						stream_RESTRICT.add(RESTRICT1049);

				}
					break;
				case 2:
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:536:14: CASCADE
				{
					CASCADE1050 = (Token) match(input, CASCADE,
							FOLLOW_CASCADE_in_drop_table_statement5846);
					if (state.failed)
						return retval;
					if (state.backtracking == 0)
						stream_CASCADE.add(CASCADE1050);

				}
					break;

				}

				// AST REWRITE
				// elements: DROP, table_name
				// token labels:
				// rule labels: retval
				// token list labels:
				// rule list labels:
				// wildcard labels:
				if (state.backtracking == 0) {
					retval.tree = root_0;
					RewriteRuleSubtreeStream stream_retval = new RewriteRuleSubtreeStream(
							adaptor, "rule retval",
							retval != null ? retval.tree : null);

					root_0 = (Object) adaptor.nil();
					// 536:24: -> ( ^( DROP table_name ) )+
					{
						if (!(stream_DROP.hasNext() || stream_table_name
								.hasNext())) {
							throw new RewriteEarlyExitException();
						}
						while (stream_DROP.hasNext()
								|| stream_table_name.hasNext()) {
							// C:\\Users\\grand\\Desktop\\another\\MySQL.g:536:28:
							// ^( DROP table_name )
							{
								Object root_1 = (Object) adaptor.nil();
								root_1 = (Object) adaptor.becomeRoot(
										stream_DROP.nextNode(), root_1);

								adaptor.addChild(root_1,
										stream_table_name.nextTree());

								adaptor.addChild(root_0, root_1);
							}

						}
						stream_DROP.reset();
						stream_table_name.reset();

					}

					retval.tree = root_0;
				}
			}

			retval.stop = input.LT(-1);

			if (state.backtracking == 0) {

				retval.tree = (Object) adaptor.rulePostProcessing(root_0);
				adaptor.setTokenBoundaries(retval.tree, retval.start,
						retval.stop);
			}
		} catch (RecognitionException re) {
			reportError(re);
			recover(input, re);
			retval.tree = (Object) adaptor.errorNode(input, retval.start,
					input.LT(-1), re);

		} finally {
		}
		return retval;
	}

	// $ANTLR end "drop_table_statement"

	public static class truncate_table_statement_return extends
			ParserRuleReturnScope {
		Object tree;

		public Object getTree() {
			return tree;
		}
	};

	// $ANTLR start "truncate_table_statement"
	// C:\\Users\\grand\\Desktop\\another\\MySQL.g:541:1:
	// truncate_table_statement : TRUNCATE ( TABLE )? table_name -> ^( TRUNCATE
	// table_name ) ;
	public final MySQLParser.truncate_table_statement_return truncate_table_statement()
			throws RecognitionException {
		MySQLParser.truncate_table_statement_return retval = new MySQLParser.truncate_table_statement_return();
		retval.start = input.LT(1);

		Object root_0 = null;

		Token TRUNCATE1051 = null;
		Token TABLE1052 = null;
		MySQLParser.table_name_return table_name1053 = null;

		Object TRUNCATE1051_tree = null;
		Object TABLE1052_tree = null;
		RewriteRuleTokenStream stream_TABLE = new RewriteRuleTokenStream(
				adaptor, "token TABLE");
		RewriteRuleTokenStream stream_TRUNCATE = new RewriteRuleTokenStream(
				adaptor, "token TRUNCATE");
		RewriteRuleSubtreeStream stream_table_name = new RewriteRuleSubtreeStream(
				adaptor, "rule table_name");
		try {
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:541:25: ( TRUNCATE (
			// TABLE )? table_name -> ^( TRUNCATE table_name ) )
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:542:2: TRUNCATE (
			// TABLE )? table_name
			{
				TRUNCATE1051 = (Token) match(input, TRUNCATE,
						FOLLOW_TRUNCATE_in_truncate_table_statement5869);
				if (state.failed)
					return retval;
				if (state.backtracking == 0)
					stream_TRUNCATE.add(TRUNCATE1051);

				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:542:11: ( TABLE
				// )?
				int alt393 = 2;
				int LA393_0 = input.LA(1);

				if ((LA393_0 == TABLE)) {
					alt393 = 1;
				}
				switch (alt393) {
				case 1:
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:542:12: TABLE
				{
					TABLE1052 = (Token) match(input, TABLE,
							FOLLOW_TABLE_in_truncate_table_statement5872);
					if (state.failed)
						return retval;
					if (state.backtracking == 0)
						stream_TABLE.add(TABLE1052);

				}
					break;

				}

				pushFollow(FOLLOW_table_name_in_truncate_table_statement5876);
				table_name1053 = table_name();

				state._fsp--;
				if (state.failed)
					return retval;
				if (state.backtracking == 0)
					stream_table_name.add(table_name1053.getTree());

				// AST REWRITE
				// elements: TRUNCATE, table_name
				// token labels:
				// rule labels: retval
				// token list labels:
				// rule list labels:
				// wildcard labels:
				if (state.backtracking == 0) {
					retval.tree = root_0;
					RewriteRuleSubtreeStream stream_retval = new RewriteRuleSubtreeStream(
							adaptor, "rule retval",
							retval != null ? retval.tree : null);

					root_0 = (Object) adaptor.nil();
					// 542:31: -> ^( TRUNCATE table_name )
					{
						// C:\\Users\\grand\\Desktop\\another\\MySQL.g:542:33:
						// ^( TRUNCATE table_name )
						{
							Object root_1 = (Object) adaptor.nil();
							root_1 = (Object) adaptor.becomeRoot(
									stream_TRUNCATE.nextNode(), root_1);

							adaptor.addChild(root_1,
									stream_table_name.nextTree());

							adaptor.addChild(root_0, root_1);
						}

					}

					retval.tree = root_0;
				}
			}

			retval.stop = input.LT(-1);

			if (state.backtracking == 0) {

				retval.tree = (Object) adaptor.rulePostProcessing(root_0);
				adaptor.setTokenBoundaries(retval.tree, retval.start,
						retval.stop);
			}
		} catch (RecognitionException re) {
			reportError(re);
			recover(input, re);
			retval.tree = (Object) adaptor.errorNode(input, retval.start,
					input.LT(-1), re);

		} finally {
		}
		return retval;
	}

	// $ANTLR end "truncate_table_statement"

	public static class create_view_statement_return extends
			ParserRuleReturnScope {
		Object tree;

		public Object getTree() {
			return tree;
		}
	};

	// $ANTLR start "create_view_statement"
	// C:\\Users\\grand\\Desktop\\another\\MySQL.g:546:1: create_view_statement
	// : CREATE ( OR_SYM REPLACE )? create_view_body ;
	public final MySQLParser.create_view_statement_return create_view_statement()
			throws RecognitionException {
		MySQLParser.create_view_statement_return retval = new MySQLParser.create_view_statement_return();
		retval.start = input.LT(1);

		Object root_0 = null;

		Token CREATE1054 = null;
		Token OR_SYM1055 = null;
		Token REPLACE1056 = null;
		MySQLParser.create_view_body_return create_view_body1057 = null;

		Object CREATE1054_tree = null;
		Object OR_SYM1055_tree = null;
		Object REPLACE1056_tree = null;

		try {
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:546:22: ( CREATE (
			// OR_SYM REPLACE )? create_view_body )
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:547:2: CREATE (
			// OR_SYM REPLACE )? create_view_body
			{
				root_0 = (Object) adaptor.nil();

				CREATE1054 = (Token) match(input, CREATE,
						FOLLOW_CREATE_in_create_view_statement5893);
				if (state.failed)
					return retval;
				if (state.backtracking == 0) {
					CREATE1054_tree = (Object) adaptor.create(CREATE1054);
					adaptor.addChild(root_0, CREATE1054_tree);
				}
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:547:9: ( OR_SYM
				// REPLACE )?
				int alt394 = 2;
				int LA394_0 = input.LA(1);

				if ((LA394_0 == OR_SYM)) {
					alt394 = 1;
				}
				switch (alt394) {
				case 1:
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:547:10: OR_SYM
				// REPLACE
				{
					OR_SYM1055 = (Token) match(input, OR_SYM,
							FOLLOW_OR_SYM_in_create_view_statement5896);
					if (state.failed)
						return retval;
					if (state.backtracking == 0) {
						OR_SYM1055_tree = (Object) adaptor.create(OR_SYM1055);
						adaptor.addChild(root_0, OR_SYM1055_tree);
					}
					REPLACE1056 = (Token) match(input, REPLACE,
							FOLLOW_REPLACE_in_create_view_statement5898);
					if (state.failed)
						return retval;
					if (state.backtracking == 0) {
						REPLACE1056_tree = (Object) adaptor.create(REPLACE1056);
						adaptor.addChild(root_0, REPLACE1056_tree);
					}

				}
					break;

				}

				pushFollow(FOLLOW_create_view_body_in_create_view_statement5903);
				create_view_body1057 = create_view_body();

				state._fsp--;
				if (state.failed)
					return retval;
				if (state.backtracking == 0)
					adaptor.addChild(root_0, create_view_body1057.getTree());

			}

			retval.stop = input.LT(-1);

			if (state.backtracking == 0) {

				retval.tree = (Object) adaptor.rulePostProcessing(root_0);
				adaptor.setTokenBoundaries(retval.tree, retval.start,
						retval.stop);
			}
		} catch (RecognitionException re) {
			reportError(re);
			recover(input, re);
			retval.tree = (Object) adaptor.errorNode(input, retval.start,
					input.LT(-1), re);

		} finally {
		}
		return retval;
	}

	// $ANTLR end "create_view_statement"

	public static class create_view_body_return extends ParserRuleReturnScope {
		Object tree;

		public Object getTree() {
			return tree;
		}
	};

	// $ANTLR start "create_view_body"
	// C:\\Users\\grand\\Desktop\\another\\MySQL.g:550:1: create_view_body : (
	// ALGORITHM_SYM EQ_SYM ( UNDEFINED_SYM | MERGE_SYM | TEMPTABLE_SYM ) )? (
	// DEFINER EQ_SYM ( user_name | CURRENT_USER ) )? ( SQL_SYM SECURITY_SYM (
	// DEFINER | INVOKER_SYM ) )? VIEW_SYM view_name ( LPAREN column_list RPAREN
	// )? AS_SYM select_statement ( WITH ( CASCADED | LOCAL_SYM )? CHECK_SYM
	// OPTION )? -> ^( VIEW_SYM view_name ) ( ^( COLUMNS column_list ) )? ^(
	// AS_SYM ^( SELECT_STMT select_statement ) ) ;
	public final MySQLParser.create_view_body_return create_view_body()
			throws RecognitionException {
		MySQLParser.create_view_body_return retval = new MySQLParser.create_view_body_return();
		retval.start = input.LT(1);

		Object root_0 = null;

		Token ALGORITHM_SYM1058 = null;
		Token EQ_SYM1059 = null;
		Token UNDEFINED_SYM1060 = null;
		Token MERGE_SYM1061 = null;
		Token TEMPTABLE_SYM1062 = null;
		Token DEFINER1063 = null;
		Token EQ_SYM1064 = null;
		Token CURRENT_USER1066 = null;
		Token SQL_SYM1067 = null;
		Token SECURITY_SYM1068 = null;
		Token DEFINER1069 = null;
		Token INVOKER_SYM1070 = null;
		Token VIEW_SYM1071 = null;
		Token LPAREN1073 = null;
		Token RPAREN1075 = null;
		Token AS_SYM1076 = null;
		Token WITH1078 = null;
		Token CASCADED1079 = null;
		Token LOCAL_SYM1080 = null;
		Token CHECK_SYM1081 = null;
		Token OPTION1082 = null;
		MySQLParser.user_name_return user_name1065 = null;

		MySQLParser.view_name_return view_name1072 = null;

		MySQLParser.column_list_return column_list1074 = null;

		MySQLParser.select_statement_return select_statement1077 = null;

		Object ALGORITHM_SYM1058_tree = null;
		Object EQ_SYM1059_tree = null;
		Object UNDEFINED_SYM1060_tree = null;
		Object MERGE_SYM1061_tree = null;
		Object TEMPTABLE_SYM1062_tree = null;
		Object DEFINER1063_tree = null;
		Object EQ_SYM1064_tree = null;
		Object CURRENT_USER1066_tree = null;
		Object SQL_SYM1067_tree = null;
		Object SECURITY_SYM1068_tree = null;
		Object DEFINER1069_tree = null;
		Object INVOKER_SYM1070_tree = null;
		Object VIEW_SYM1071_tree = null;
		Object LPAREN1073_tree = null;
		Object RPAREN1075_tree = null;
		Object AS_SYM1076_tree = null;
		Object WITH1078_tree = null;
		Object CASCADED1079_tree = null;
		Object LOCAL_SYM1080_tree = null;
		Object CHECK_SYM1081_tree = null;
		Object OPTION1082_tree = null;
		RewriteRuleTokenStream stream_RPAREN = new RewriteRuleTokenStream(
				adaptor, "token RPAREN");
		RewriteRuleTokenStream stream_AS_SYM = new RewriteRuleTokenStream(
				adaptor, "token AS_SYM");
		RewriteRuleTokenStream stream_OPTION = new RewriteRuleTokenStream(
				adaptor, "token OPTION");
		RewriteRuleTokenStream stream_CASCADED = new RewriteRuleTokenStream(
				adaptor, "token CASCADED");
		RewriteRuleTokenStream stream_SECURITY_SYM = new RewriteRuleTokenStream(
				adaptor, "token SECURITY_SYM");
		RewriteRuleTokenStream stream_CURRENT_USER = new RewriteRuleTokenStream(
				adaptor, "token CURRENT_USER");
		RewriteRuleTokenStream stream_ALGORITHM_SYM = new RewriteRuleTokenStream(
				adaptor, "token ALGORITHM_SYM");
		RewriteRuleTokenStream stream_LOCAL_SYM = new RewriteRuleTokenStream(
				adaptor, "token LOCAL_SYM");
		RewriteRuleTokenStream stream_VIEW_SYM = new RewriteRuleTokenStream(
				adaptor, "token VIEW_SYM");
		RewriteRuleTokenStream stream_EQ_SYM = new RewriteRuleTokenStream(
				adaptor, "token EQ_SYM");
		RewriteRuleTokenStream stream_INVOKER_SYM = new RewriteRuleTokenStream(
				adaptor, "token INVOKER_SYM");
		RewriteRuleTokenStream stream_DEFINER = new RewriteRuleTokenStream(
				adaptor, "token DEFINER");
		RewriteRuleTokenStream stream_MERGE_SYM = new RewriteRuleTokenStream(
				adaptor, "token MERGE_SYM");
		RewriteRuleTokenStream stream_CHECK_SYM = new RewriteRuleTokenStream(
				adaptor, "token CHECK_SYM");
		RewriteRuleTokenStream stream_SQL_SYM = new RewriteRuleTokenStream(
				adaptor, "token SQL_SYM");
		RewriteRuleTokenStream stream_TEMPTABLE_SYM = new RewriteRuleTokenStream(
				adaptor, "token TEMPTABLE_SYM");
		RewriteRuleTokenStream stream_UNDEFINED_SYM = new RewriteRuleTokenStream(
				adaptor, "token UNDEFINED_SYM");
		RewriteRuleTokenStream stream_LPAREN = new RewriteRuleTokenStream(
				adaptor, "token LPAREN");
		RewriteRuleTokenStream stream_WITH = new RewriteRuleTokenStream(
				adaptor, "token WITH");
		RewriteRuleSubtreeStream stream_user_name = new RewriteRuleSubtreeStream(
				adaptor, "rule user_name");
		RewriteRuleSubtreeStream stream_view_name = new RewriteRuleSubtreeStream(
				adaptor, "rule view_name");
		RewriteRuleSubtreeStream stream_column_list = new RewriteRuleSubtreeStream(
				adaptor, "rule column_list");
		RewriteRuleSubtreeStream stream_select_statement = new RewriteRuleSubtreeStream(
				adaptor, "rule select_statement");
		try {
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:550:17: ( (
			// ALGORITHM_SYM EQ_SYM ( UNDEFINED_SYM | MERGE_SYM | TEMPTABLE_SYM
			// ) )? ( DEFINER EQ_SYM ( user_name | CURRENT_USER ) )? ( SQL_SYM
			// SECURITY_SYM ( DEFINER | INVOKER_SYM ) )? VIEW_SYM view_name (
			// LPAREN column_list RPAREN )? AS_SYM select_statement ( WITH (
			// CASCADED | LOCAL_SYM )? CHECK_SYM OPTION )? -> ^( VIEW_SYM
			// view_name ) ( ^( COLUMNS column_list ) )? ^( AS_SYM ^(
			// SELECT_STMT select_statement ) ) )
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:551:2: (
			// ALGORITHM_SYM EQ_SYM ( UNDEFINED_SYM | MERGE_SYM | TEMPTABLE_SYM
			// ) )? ( DEFINER EQ_SYM ( user_name | CURRENT_USER ) )? ( SQL_SYM
			// SECURITY_SYM ( DEFINER | INVOKER_SYM ) )? VIEW_SYM view_name (
			// LPAREN column_list RPAREN )? AS_SYM select_statement ( WITH (
			// CASCADED | LOCAL_SYM )? CHECK_SYM OPTION )?
			{
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:551:2: (
				// ALGORITHM_SYM EQ_SYM ( UNDEFINED_SYM | MERGE_SYM |
				// TEMPTABLE_SYM ) )?
				int alt396 = 2;
				int LA396_0 = input.LA(1);

				if ((LA396_0 == ALGORITHM_SYM)) {
					alt396 = 1;
				}
				switch (alt396) {
				case 1:
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:551:3:
				// ALGORITHM_SYM EQ_SYM ( UNDEFINED_SYM | MERGE_SYM |
				// TEMPTABLE_SYM )
				{
					ALGORITHM_SYM1058 = (Token) match(input, ALGORITHM_SYM,
							FOLLOW_ALGORITHM_SYM_in_create_view_body5912);
					if (state.failed)
						return retval;
					if (state.backtracking == 0)
						stream_ALGORITHM_SYM.add(ALGORITHM_SYM1058);

					EQ_SYM1059 = (Token) match(input, EQ_SYM,
							FOLLOW_EQ_SYM_in_create_view_body5914);
					if (state.failed)
						return retval;
					if (state.backtracking == 0)
						stream_EQ_SYM.add(EQ_SYM1059);

					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:551:24: (
					// UNDEFINED_SYM | MERGE_SYM | TEMPTABLE_SYM )
					int alt395 = 3;
					switch (input.LA(1)) {
					case UNDEFINED_SYM: {
						alt395 = 1;
					}
						break;
					case MERGE_SYM: {
						alt395 = 2;
					}
						break;
					case TEMPTABLE_SYM: {
						alt395 = 3;
					}
						break;
					default:
						if (state.backtracking > 0) {
							state.failed = true;
							return retval;
						}
						NoViableAltException nvae = new NoViableAltException(
								"", 395, 0, input);

						throw nvae;
					}

					switch (alt395) {
					case 1:
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:551:25:
					// UNDEFINED_SYM
					{
						UNDEFINED_SYM1060 = (Token) match(input, UNDEFINED_SYM,
								FOLLOW_UNDEFINED_SYM_in_create_view_body5917);
						if (state.failed)
							return retval;
						if (state.backtracking == 0)
							stream_UNDEFINED_SYM.add(UNDEFINED_SYM1060);

					}
						break;
					case 2:
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:551:41:
					// MERGE_SYM
					{
						MERGE_SYM1061 = (Token) match(input, MERGE_SYM,
								FOLLOW_MERGE_SYM_in_create_view_body5921);
						if (state.failed)
							return retval;
						if (state.backtracking == 0)
							stream_MERGE_SYM.add(MERGE_SYM1061);

					}
						break;
					case 3:
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:551:53:
					// TEMPTABLE_SYM
					{
						TEMPTABLE_SYM1062 = (Token) match(input, TEMPTABLE_SYM,
								FOLLOW_TEMPTABLE_SYM_in_create_view_body5925);
						if (state.failed)
							return retval;
						if (state.backtracking == 0)
							stream_TEMPTABLE_SYM.add(TEMPTABLE_SYM1062);

					}
						break;

					}

				}
					break;

				}

				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:552:2: ( DEFINER
				// EQ_SYM ( user_name | CURRENT_USER ) )?
				int alt398 = 2;
				int LA398_0 = input.LA(1);

				if ((LA398_0 == DEFINER)) {
					alt398 = 1;
				}
				switch (alt398) {
				case 1:
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:552:3: DEFINER
				// EQ_SYM ( user_name | CURRENT_USER )
				{
					DEFINER1063 = (Token) match(input, DEFINER,
							FOLLOW_DEFINER_in_create_view_body5932);
					if (state.failed)
						return retval;
					if (state.backtracking == 0)
						stream_DEFINER.add(DEFINER1063);

					EQ_SYM1064 = (Token) match(input, EQ_SYM,
							FOLLOW_EQ_SYM_in_create_view_body5934);
					if (state.failed)
						return retval;
					if (state.backtracking == 0)
						stream_EQ_SYM.add(EQ_SYM1064);

					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:552:18: (
					// user_name | CURRENT_USER )
					int alt397 = 2;
					int LA397_0 = input.LA(1);

					if ((LA397_0 == ID)) {
						alt397 = 1;
					} else if ((LA397_0 == CURRENT_USER)) {
						alt397 = 2;
					} else {
						if (state.backtracking > 0) {
							state.failed = true;
							return retval;
						}
						NoViableAltException nvae = new NoViableAltException(
								"", 397, 0, input);

						throw nvae;
					}
					switch (alt397) {
					case 1:
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:552:19:
					// user_name
					{
						pushFollow(FOLLOW_user_name_in_create_view_body5937);
						user_name1065 = user_name();

						state._fsp--;
						if (state.failed)
							return retval;
						if (state.backtracking == 0)
							stream_user_name.add(user_name1065.getTree());

					}
						break;
					case 2:
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:552:31:
					// CURRENT_USER
					{
						CURRENT_USER1066 = (Token) match(input, CURRENT_USER,
								FOLLOW_CURRENT_USER_in_create_view_body5941);
						if (state.failed)
							return retval;
						if (state.backtracking == 0)
							stream_CURRENT_USER.add(CURRENT_USER1066);

					}
						break;

					}

				}
					break;

				}

				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:553:2: ( SQL_SYM
				// SECURITY_SYM ( DEFINER | INVOKER_SYM ) )?
				int alt400 = 2;
				int LA400_0 = input.LA(1);

				if ((LA400_0 == SQL_SYM)) {
					alt400 = 1;
				}
				switch (alt400) {
				case 1:
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:553:3: SQL_SYM
				// SECURITY_SYM ( DEFINER | INVOKER_SYM )
				{
					SQL_SYM1067 = (Token) match(input, SQL_SYM,
							FOLLOW_SQL_SYM_in_create_view_body5949);
					if (state.failed)
						return retval;
					if (state.backtracking == 0)
						stream_SQL_SYM.add(SQL_SYM1067);

					SECURITY_SYM1068 = (Token) match(input, SECURITY_SYM,
							FOLLOW_SECURITY_SYM_in_create_view_body5951);
					if (state.failed)
						return retval;
					if (state.backtracking == 0)
						stream_SECURITY_SYM.add(SECURITY_SYM1068);

					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:553:24: (
					// DEFINER | INVOKER_SYM )
					int alt399 = 2;
					int LA399_0 = input.LA(1);

					if ((LA399_0 == DEFINER)) {
						alt399 = 1;
					} else if ((LA399_0 == INVOKER_SYM)) {
						alt399 = 2;
					} else {
						if (state.backtracking > 0) {
							state.failed = true;
							return retval;
						}
						NoViableAltException nvae = new NoViableAltException(
								"", 399, 0, input);

						throw nvae;
					}
					switch (alt399) {
					case 1:
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:553:26:
					// DEFINER
					{
						DEFINER1069 = (Token) match(input, DEFINER,
								FOLLOW_DEFINER_in_create_view_body5955);
						if (state.failed)
							return retval;
						if (state.backtracking == 0)
							stream_DEFINER.add(DEFINER1069);

					}
						break;
					case 2:
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:553:36:
					// INVOKER_SYM
					{
						INVOKER_SYM1070 = (Token) match(input, INVOKER_SYM,
								FOLLOW_INVOKER_SYM_in_create_view_body5959);
						if (state.failed)
							return retval;
						if (state.backtracking == 0)
							stream_INVOKER_SYM.add(INVOKER_SYM1070);

					}
						break;

					}

				}
					break;

				}

				VIEW_SYM1071 = (Token) match(input, VIEW_SYM,
						FOLLOW_VIEW_SYM_in_create_view_body5966);
				if (state.failed)
					return retval;
				if (state.backtracking == 0)
					stream_VIEW_SYM.add(VIEW_SYM1071);

				pushFollow(FOLLOW_view_name_in_create_view_body5968);
				view_name1072 = view_name();

				state._fsp--;
				if (state.failed)
					return retval;
				if (state.backtracking == 0)
					stream_view_name.add(view_name1072.getTree());
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:554:21: ( LPAREN
				// column_list RPAREN )?
				int alt401 = 2;
				int LA401_0 = input.LA(1);

				if ((LA401_0 == LPAREN)) {
					alt401 = 1;
				}
				switch (alt401) {
				case 1:
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:554:22: LPAREN
				// column_list RPAREN
				{
					LPAREN1073 = (Token) match(input, LPAREN,
							FOLLOW_LPAREN_in_create_view_body5971);
					if (state.failed)
						return retval;
					if (state.backtracking == 0)
						stream_LPAREN.add(LPAREN1073);

					pushFollow(FOLLOW_column_list_in_create_view_body5973);
					column_list1074 = column_list();

					state._fsp--;
					if (state.failed)
						return retval;
					if (state.backtracking == 0)
						stream_column_list.add(column_list1074.getTree());
					RPAREN1075 = (Token) match(input, RPAREN,
							FOLLOW_RPAREN_in_create_view_body5975);
					if (state.failed)
						return retval;
					if (state.backtracking == 0)
						stream_RPAREN.add(RPAREN1075);

				}
					break;

				}

				AS_SYM1076 = (Token) match(input, AS_SYM,
						FOLLOW_AS_SYM_in_create_view_body5980);
				if (state.failed)
					return retval;
				if (state.backtracking == 0)
					stream_AS_SYM.add(AS_SYM1076);

				pushFollow(FOLLOW_select_statement_in_create_view_body5982);
				select_statement1077 = select_statement();

				state._fsp--;
				if (state.failed)
					return retval;
				if (state.backtracking == 0)
					stream_select_statement.add(select_statement1077.getTree());
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:556:2: ( WITH (
				// CASCADED | LOCAL_SYM )? CHECK_SYM OPTION )?
				int alt403 = 2;
				int LA403_0 = input.LA(1);

				if ((LA403_0 == WITH)) {
					alt403 = 1;
				}
				switch (alt403) {
				case 1:
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:556:3: WITH (
				// CASCADED | LOCAL_SYM )? CHECK_SYM OPTION
				{
					WITH1078 = (Token) match(input, WITH,
							FOLLOW_WITH_in_create_view_body5986);
					if (state.failed)
						return retval;
					if (state.backtracking == 0)
						stream_WITH.add(WITH1078);

					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:556:8: (
					// CASCADED | LOCAL_SYM )?
					int alt402 = 3;
					int LA402_0 = input.LA(1);

					if ((LA402_0 == CASCADED)) {
						alt402 = 1;
					} else if ((LA402_0 == LOCAL_SYM)) {
						alt402 = 2;
					}
					switch (alt402) {
					case 1:
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:556:9:
					// CASCADED
					{
						CASCADED1079 = (Token) match(input, CASCADED,
								FOLLOW_CASCADED_in_create_view_body5989);
						if (state.failed)
							return retval;
						if (state.backtracking == 0)
							stream_CASCADED.add(CASCADED1079);

					}
						break;
					case 2:
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:556:20:
					// LOCAL_SYM
					{
						LOCAL_SYM1080 = (Token) match(input, LOCAL_SYM,
								FOLLOW_LOCAL_SYM_in_create_view_body5993);
						if (state.failed)
							return retval;
						if (state.backtracking == 0)
							stream_LOCAL_SYM.add(LOCAL_SYM1080);

					}
						break;

					}

					CHECK_SYM1081 = (Token) match(input, CHECK_SYM,
							FOLLOW_CHECK_SYM_in_create_view_body5997);
					if (state.failed)
						return retval;
					if (state.backtracking == 0)
						stream_CHECK_SYM.add(CHECK_SYM1081);

					OPTION1082 = (Token) match(input, OPTION,
							FOLLOW_OPTION_in_create_view_body5999);
					if (state.failed)
						return retval;
					if (state.backtracking == 0)
						stream_OPTION.add(OPTION1082);

				}
					break;

				}

				// AST REWRITE
				// elements: select_statement, AS_SYM, column_list, view_name,
				// VIEW_SYM
				// token labels:
				// rule labels: retval
				// token list labels:
				// rule list labels:
				// wildcard labels:
				if (state.backtracking == 0) {
					retval.tree = root_0;
					RewriteRuleSubtreeStream stream_retval = new RewriteRuleSubtreeStream(
							adaptor, "rule retval",
							retval != null ? retval.tree : null);

					root_0 = (Object) adaptor.nil();
					// 557:2: -> ^( VIEW_SYM view_name ) ( ^( COLUMNS
					// column_list ) )? ^( AS_SYM ^( SELECT_STMT
					// select_statement ) )
					{
						// C:\\Users\\grand\\Desktop\\another\\MySQL.g:557:4: ^(
						// VIEW_SYM view_name )
						{
							Object root_1 = (Object) adaptor.nil();
							root_1 = (Object) adaptor.becomeRoot(
									stream_VIEW_SYM.nextNode(), root_1);

							adaptor.addChild(root_1,
									stream_view_name.nextTree());

							adaptor.addChild(root_0, root_1);
						}
						// C:\\Users\\grand\\Desktop\\another\\MySQL.g:557:26: (
						// ^( COLUMNS column_list ) )?
						if (stream_column_list.hasNext()) {
							// C:\\Users\\grand\\Desktop\\another\\MySQL.g:557:26:
							// ^( COLUMNS column_list )
							{
								Object root_1 = (Object) adaptor.nil();
								root_1 = (Object) adaptor.becomeRoot(
										(Object) adaptor.create(COLUMNS,
												"COLUMNS"), root_1);

								adaptor.addChild(root_1,
										stream_column_list.nextTree());

								adaptor.addChild(root_0, root_1);
							}

						}
						stream_column_list.reset();
						// C:\\Users\\grand\\Desktop\\another\\MySQL.g:557:50:
						// ^( AS_SYM ^( SELECT_STMT select_statement ) )
						{
							Object root_1 = (Object) adaptor.nil();
							root_1 = (Object) adaptor.becomeRoot(
									stream_AS_SYM.nextNode(), root_1);

							// C:\\Users\\grand\\Desktop\\another\\MySQL.g:557:59:
							// ^( SELECT_STMT select_statement )
							{
								Object root_2 = (Object) adaptor.nil();
								root_2 = (Object) adaptor.becomeRoot(
										(Object) adaptor.create(SELECT_STMT,
												"SELECT_STMT"), root_2);

								adaptor.addChild(root_2,
										stream_select_statement.nextTree());

								adaptor.addChild(root_1, root_2);
							}

							adaptor.addChild(root_0, root_1);
						}

					}

					retval.tree = root_0;
				}
			}

			retval.stop = input.LT(-1);

			if (state.backtracking == 0) {

				retval.tree = (Object) adaptor.rulePostProcessing(root_0);
				adaptor.setTokenBoundaries(retval.tree, retval.start,
						retval.stop);
			}
		} catch (RecognitionException re) {
			reportError(re);
			recover(input, re);
			retval.tree = (Object) adaptor.errorNode(input, retval.start,
					input.LT(-1), re);

		} finally {
		}
		return retval;
	}

	// $ANTLR end "create_view_body"

	public static class alter_view_statement_return extends
			ParserRuleReturnScope {
		Object tree;

		public Object getTree() {
			return tree;
		}
	};

	// $ANTLR start "alter_view_statement"
	// C:\\Users\\grand\\Desktop\\another\\MySQL.g:562:1: alter_view_statement :
	// ALTER create_view_body -> ^( ALTER create_view_body ) ;
	public final MySQLParser.alter_view_statement_return alter_view_statement()
			throws RecognitionException {
		MySQLParser.alter_view_statement_return retval = new MySQLParser.alter_view_statement_return();
		retval.start = input.LT(1);

		Object root_0 = null;

		Token ALTER1083 = null;
		MySQLParser.create_view_body_return create_view_body1084 = null;

		Object ALTER1083_tree = null;
		RewriteRuleTokenStream stream_ALTER = new RewriteRuleTokenStream(
				adaptor, "token ALTER");
		RewriteRuleSubtreeStream stream_create_view_body = new RewriteRuleSubtreeStream(
				adaptor, "rule create_view_body");
		try {
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:562:21: ( ALTER
			// create_view_body -> ^( ALTER create_view_body ) )
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:563:2: ALTER
			// create_view_body
			{
				ALTER1083 = (Token) match(input, ALTER,
						FOLLOW_ALTER_in_alter_view_statement6038);
				if (state.failed)
					return retval;
				if (state.backtracking == 0)
					stream_ALTER.add(ALTER1083);

				pushFollow(FOLLOW_create_view_body_in_alter_view_statement6041);
				create_view_body1084 = create_view_body();

				state._fsp--;
				if (state.failed)
					return retval;
				if (state.backtracking == 0)
					stream_create_view_body.add(create_view_body1084.getTree());

				// AST REWRITE
				// elements: create_view_body, ALTER
				// token labels:
				// rule labels: retval
				// token list labels:
				// rule list labels:
				// wildcard labels:
				if (state.backtracking == 0) {
					retval.tree = root_0;
					RewriteRuleSubtreeStream stream_retval = new RewriteRuleSubtreeStream(
							adaptor, "rule retval",
							retval != null ? retval.tree : null);

					root_0 = (Object) adaptor.nil();
					// 564:19: -> ^( ALTER create_view_body )
					{
						// C:\\Users\\grand\\Desktop\\another\\MySQL.g:564:21:
						// ^( ALTER create_view_body )
						{
							Object root_1 = (Object) adaptor.nil();
							root_1 = (Object) adaptor.becomeRoot(
									stream_ALTER.nextNode(), root_1);

							adaptor.addChild(root_1,
									stream_create_view_body.nextTree());

							adaptor.addChild(root_0, root_1);
						}

					}

					retval.tree = root_0;
				}
			}

			retval.stop = input.LT(-1);

			if (state.backtracking == 0) {

				retval.tree = (Object) adaptor.rulePostProcessing(root_0);
				adaptor.setTokenBoundaries(retval.tree, retval.start,
						retval.stop);
			}
		} catch (RecognitionException re) {
			reportError(re);
			recover(input, re);
			retval.tree = (Object) adaptor.errorNode(input, retval.start,
					input.LT(-1), re);

		} finally {
		}
		return retval;
	}

	// $ANTLR end "alter_view_statement"

	public static class drop_view_statement_return extends
			ParserRuleReturnScope {
		Object tree;

		public Object getTree() {
			return tree;
		}
	};

	// $ANTLR start "drop_view_statement"
	// C:\\Users\\grand\\Desktop\\another\\MySQL.g:569:1: drop_view_statement :
	// DROP VIEW_SYM ( IF EXISTS )? view_name ( COMMA view_name )* ( RESTRICT |
	// CASCADE )? -> ( ^( VIEW_SYM view_name ) )+ ;
	public final MySQLParser.drop_view_statement_return drop_view_statement()
			throws RecognitionException {
		MySQLParser.drop_view_statement_return retval = new MySQLParser.drop_view_statement_return();
		retval.start = input.LT(1);

		Object root_0 = null;

		Token DROP1085 = null;
		Token VIEW_SYM1086 = null;
		Token IF1087 = null;
		Token EXISTS1088 = null;
		Token COMMA1090 = null;
		Token RESTRICT1092 = null;
		Token CASCADE1093 = null;
		MySQLParser.view_name_return view_name1089 = null;

		MySQLParser.view_name_return view_name1091 = null;

		Object DROP1085_tree = null;
		Object VIEW_SYM1086_tree = null;
		Object IF1087_tree = null;
		Object EXISTS1088_tree = null;
		Object COMMA1090_tree = null;
		Object RESTRICT1092_tree = null;
		Object CASCADE1093_tree = null;
		RewriteRuleTokenStream stream_EXISTS = new RewriteRuleTokenStream(
				adaptor, "token EXISTS");
		RewriteRuleTokenStream stream_DROP = new RewriteRuleTokenStream(
				adaptor, "token DROP");
		RewriteRuleTokenStream stream_CASCADE = new RewriteRuleTokenStream(
				adaptor, "token CASCADE");
		RewriteRuleTokenStream stream_COMMA = new RewriteRuleTokenStream(
				adaptor, "token COMMA");
		RewriteRuleTokenStream stream_RESTRICT = new RewriteRuleTokenStream(
				adaptor, "token RESTRICT");
		RewriteRuleTokenStream stream_VIEW_SYM = new RewriteRuleTokenStream(
				adaptor, "token VIEW_SYM");
		RewriteRuleTokenStream stream_IF = new RewriteRuleTokenStream(adaptor,
				"token IF");
		RewriteRuleSubtreeStream stream_view_name = new RewriteRuleSubtreeStream(
				adaptor, "rule view_name");
		try {
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:569:20: ( DROP
			// VIEW_SYM ( IF EXISTS )? view_name ( COMMA view_name )* ( RESTRICT
			// | CASCADE )? -> ( ^( VIEW_SYM view_name ) )+ )
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:570:2: DROP VIEW_SYM
			// ( IF EXISTS )? view_name ( COMMA view_name )* ( RESTRICT |
			// CASCADE )?
			{
				DROP1085 = (Token) match(input, DROP,
						FOLLOW_DROP_in_drop_view_statement6059);
				if (state.failed)
					return retval;
				if (state.backtracking == 0)
					stream_DROP.add(DROP1085);

				VIEW_SYM1086 = (Token) match(input, VIEW_SYM,
						FOLLOW_VIEW_SYM_in_drop_view_statement6061);
				if (state.failed)
					return retval;
				if (state.backtracking == 0)
					stream_VIEW_SYM.add(VIEW_SYM1086);

				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:570:16: ( IF
				// EXISTS )?
				int alt404 = 2;
				int LA404_0 = input.LA(1);

				if ((LA404_0 == IF)) {
					alt404 = 1;
				}
				switch (alt404) {
				case 1:
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:570:17: IF EXISTS
				{
					IF1087 = (Token) match(input, IF,
							FOLLOW_IF_in_drop_view_statement6064);
					if (state.failed)
						return retval;
					if (state.backtracking == 0)
						stream_IF.add(IF1087);

					EXISTS1088 = (Token) match(input, EXISTS,
							FOLLOW_EXISTS_in_drop_view_statement6066);
					if (state.failed)
						return retval;
					if (state.backtracking == 0)
						stream_EXISTS.add(EXISTS1088);

				}
					break;

				}

				pushFollow(FOLLOW_view_name_in_drop_view_statement6071);
				view_name1089 = view_name();

				state._fsp--;
				if (state.failed)
					return retval;
				if (state.backtracking == 0)
					stream_view_name.add(view_name1089.getTree());
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:571:12: ( COMMA
				// view_name )*
				loop405: do {
					int alt405 = 2;
					int LA405_0 = input.LA(1);

					if ((LA405_0 == COMMA)) {
						alt405 = 1;
					}

					switch (alt405) {
					case 1:
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:571:13: COMMA
					// view_name
					{
						COMMA1090 = (Token) match(input, COMMA,
								FOLLOW_COMMA_in_drop_view_statement6074);
						if (state.failed)
							return retval;
						if (state.backtracking == 0)
							stream_COMMA.add(COMMA1090);

						pushFollow(FOLLOW_view_name_in_drop_view_statement6076);
						view_name1091 = view_name();

						state._fsp--;
						if (state.failed)
							return retval;
						if (state.backtracking == 0)
							stream_view_name.add(view_name1091.getTree());

					}
						break;

					default:
						break loop405;
					}
				} while (true);

				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:572:2: ( RESTRICT
				// | CASCADE )?
				int alt406 = 3;
				int LA406_0 = input.LA(1);

				if ((LA406_0 == RESTRICT)) {
					alt406 = 1;
				} else if ((LA406_0 == CASCADE)) {
					alt406 = 2;
				}
				switch (alt406) {
				case 1:
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:572:3: RESTRICT
				{
					RESTRICT1092 = (Token) match(input, RESTRICT,
							FOLLOW_RESTRICT_in_drop_view_statement6082);
					if (state.failed)
						return retval;
					if (state.backtracking == 0)
						stream_RESTRICT.add(RESTRICT1092);

				}
					break;
				case 2:
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:572:14: CASCADE
				{
					CASCADE1093 = (Token) match(input, CASCADE,
							FOLLOW_CASCADE_in_drop_view_statement6086);
					if (state.failed)
						return retval;
					if (state.backtracking == 0)
						stream_CASCADE.add(CASCADE1093);

				}
					break;

				}

				// AST REWRITE
				// elements: VIEW_SYM, view_name
				// token labels:
				// rule labels: retval
				// token list labels:
				// rule list labels:
				// wildcard labels:
				if (state.backtracking == 0) {
					retval.tree = root_0;
					RewriteRuleSubtreeStream stream_retval = new RewriteRuleSubtreeStream(
							adaptor, "rule retval",
							retval != null ? retval.tree : null);

					root_0 = (Object) adaptor.nil();
					// 572:24: -> ( ^( VIEW_SYM view_name ) )+
					{
						if (!(stream_VIEW_SYM.hasNext() || stream_view_name
								.hasNext())) {
							throw new RewriteEarlyExitException();
						}
						while (stream_VIEW_SYM.hasNext()
								|| stream_view_name.hasNext()) {
							// C:\\Users\\grand\\Desktop\\another\\MySQL.g:572:26:
							// ^( VIEW_SYM view_name )
							{
								Object root_1 = (Object) adaptor.nil();
								root_1 = (Object) adaptor.becomeRoot(
										stream_VIEW_SYM.nextNode(), root_1);

								adaptor.addChild(root_1,
										stream_view_name.nextTree());

								adaptor.addChild(root_0, root_1);
							}

						}
						stream_VIEW_SYM.reset();
						stream_view_name.reset();

					}

					retval.tree = root_0;
				}
			}

			retval.stop = input.LT(-1);

			if (state.backtracking == 0) {

				retval.tree = (Object) adaptor.rulePostProcessing(root_0);
				adaptor.setTokenBoundaries(retval.tree, retval.start,
						retval.stop);
			}
		} catch (RecognitionException re) {
			reportError(re);
			recover(input, re);
			retval.tree = (Object) adaptor.errorNode(input, retval.start,
					input.LT(-1), re);

		} finally {
		}
		return retval;
	}

	// $ANTLR end "drop_view_statement"

	public static class relational_op_return extends ParserRuleReturnScope {
		Object tree;

		public Object getTree() {
			return tree;
		}
	};

	// $ANTLR start "relational_op"
	// C:\\Users\\grand\\Desktop\\another\\MySQL.g:576:1: relational_op : (
	// EQ_SYM | LTH | GTH | NOT_EQ | LET | GET );
	public final MySQLParser.relational_op_return relational_op()
			throws RecognitionException {
		MySQLParser.relational_op_return retval = new MySQLParser.relational_op_return();
		retval.start = input.LT(1);

		Object root_0 = null;

		Token set1094 = null;

		Object set1094_tree = null;

		try {
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:576:14: ( EQ_SYM |
			// LTH | GTH | NOT_EQ | LET | GET )
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:
			{
				root_0 = (Object) adaptor.nil();

				set1094 = (Token) input.LT(1);
				if (input.LA(1) == EQ_SYM
						|| (input.LA(1) >= LTH && input.LA(1) <= GET)) {
					input.consume();
					if (state.backtracking == 0)
						adaptor.addChild(root_0,
								(Object) adaptor.create(set1094));
					state.errorRecovery = false;
					state.failed = false;
				} else {
					if (state.backtracking > 0) {
						state.failed = true;
						return retval;
					}
					MismatchedSetException mse = new MismatchedSetException(
							null, input);
					throw mse;
				}

			}

			retval.stop = input.LT(-1);

			if (state.backtracking == 0) {

				retval.tree = (Object) adaptor.rulePostProcessing(root_0);
				adaptor.setTokenBoundaries(retval.tree, retval.start,
						retval.stop);
			}
		} catch (RecognitionException re) {
			reportError(re);
			recover(input, re);
			retval.tree = (Object) adaptor.errorNode(input, retval.start,
					input.LT(-1), re);

		} finally {
		}
		return retval;
	}

	// $ANTLR end "relational_op"

	public static class charset_name_return extends ParserRuleReturnScope {
		Object tree;

		public Object getTree() {
			return tree;
		}
	};

	// $ANTLR start "charset_name"
	// C:\\Users\\grand\\Desktop\\another\\MySQL.g:579:1: charset_name : (
	// ARMSCII8 | ASCII_SYM | BIG5 | BINARY | CP1250 | CP1251 | CP1256 | CP1257
	// | CP850 | CP852 | CP866 | CP932 | DEC8 | EUCJPMS | EUCKR | GB2312 | GBK |
	// GEOSTD8 | GREEK | HEBREW | HP8 | KEYBCS2 | KOI8R | KOI8U | LATIN1 |
	// LATIN2 | LATIN5 | LATIN7 | MACCE | MACROMAN | SJIS | SWE7 | TIS620 | UCS2
	// | UJIS | UTF8 );
	public final MySQLParser.charset_name_return charset_name()
			throws RecognitionException {
		MySQLParser.charset_name_return retval = new MySQLParser.charset_name_return();
		retval.start = input.LT(1);

		Object root_0 = null;

		Token set1095 = null;

		Object set1095_tree = null;

		try {
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:579:13: ( ARMSCII8 |
			// ASCII_SYM | BIG5 | BINARY | CP1250 | CP1251 | CP1256 | CP1257 |
			// CP850 | CP852 | CP866 | CP932 | DEC8 | EUCJPMS | EUCKR | GB2312 |
			// GBK | GEOSTD8 | GREEK | HEBREW | HP8 | KEYBCS2 | KOI8R | KOI8U |
			// LATIN1 | LATIN2 | LATIN5 | LATIN7 | MACCE | MACROMAN | SJIS |
			// SWE7 | TIS620 | UCS2 | UJIS | UTF8 )
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:
			{
				root_0 = (Object) adaptor.nil();

				set1095 = (Token) input.LT(1);
				if (input.LA(1) == BINARY
						|| (input.LA(1) >= ARMSCII8 && input.LA(1) <= UTF8)) {
					input.consume();
					if (state.backtracking == 0)
						adaptor.addChild(root_0,
								(Object) adaptor.create(set1095));
					state.errorRecovery = false;
					state.failed = false;
				} else {
					if (state.backtracking > 0) {
						state.failed = true;
						return retval;
					}
					MismatchedSetException mse = new MismatchedSetException(
							null, input);
					throw mse;
				}

			}

			retval.stop = input.LT(-1);

			if (state.backtracking == 0) {

				retval.tree = (Object) adaptor.rulePostProcessing(root_0);
				adaptor.setTokenBoundaries(retval.tree, retval.start,
						retval.stop);
			}
		} catch (RecognitionException re) {
			reportError(re);
			recover(input, re);
			retval.tree = (Object) adaptor.errorNode(input, retval.start,
					input.LT(-1), re);

		} finally {
		}
		return retval;
	}

	// $ANTLR end "charset_name"

	public static class cast_data_type_return extends ParserRuleReturnScope {
		Object tree;

		public Object getTree() {
			return tree;
		}
	};

	// $ANTLR start "cast_data_type"
	// C:\\Users\\grand\\Desktop\\another\\MySQL.g:617:1: cast_data_type : (
	// BINARY ( INTEGER_NUM )? | CHAR ( INTEGER_NUM )? | DATE_SYM | DATETIME |
	// DECIMAL_SYM ( INTEGER_NUM ( COMMA INTEGER_NUM )? )? | SIGNED_SYM (
	// INTEGER_SYM )? | TIME_SYM | UNSIGNED_SYM ( INTEGER_SYM )? );
	public final MySQLParser.cast_data_type_return cast_data_type()
			throws RecognitionException {
		MySQLParser.cast_data_type_return retval = new MySQLParser.cast_data_type_return();
		retval.start = input.LT(1);

		Object root_0 = null;

		Token BINARY1096 = null;
		Token INTEGER_NUM1097 = null;
		Token CHAR1098 = null;
		Token INTEGER_NUM1099 = null;
		Token DATE_SYM1100 = null;
		Token DATETIME1101 = null;
		Token DECIMAL_SYM1102 = null;
		Token INTEGER_NUM1103 = null;
		Token COMMA1104 = null;
		Token INTEGER_NUM1105 = null;
		Token SIGNED_SYM1106 = null;
		Token INTEGER_SYM1107 = null;
		Token TIME_SYM1108 = null;
		Token UNSIGNED_SYM1109 = null;
		Token INTEGER_SYM1110 = null;

		Object BINARY1096_tree = null;
		Object INTEGER_NUM1097_tree = null;
		Object CHAR1098_tree = null;
		Object INTEGER_NUM1099_tree = null;
		Object DATE_SYM1100_tree = null;
		Object DATETIME1101_tree = null;
		Object DECIMAL_SYM1102_tree = null;
		Object INTEGER_NUM1103_tree = null;
		Object COMMA1104_tree = null;
		Object INTEGER_NUM1105_tree = null;
		Object SIGNED_SYM1106_tree = null;
		Object INTEGER_SYM1107_tree = null;
		Object TIME_SYM1108_tree = null;
		Object UNSIGNED_SYM1109_tree = null;
		Object INTEGER_SYM1110_tree = null;

		try {
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:617:15: ( BINARY (
			// INTEGER_NUM )? | CHAR ( INTEGER_NUM )? | DATE_SYM | DATETIME |
			// DECIMAL_SYM ( INTEGER_NUM ( COMMA INTEGER_NUM )? )? | SIGNED_SYM
			// ( INTEGER_SYM )? | TIME_SYM | UNSIGNED_SYM ( INTEGER_SYM )? )
			int alt413 = 8;
			switch (input.LA(1)) {
			case BINARY: {
				alt413 = 1;
			}
				break;
			case CHAR: {
				alt413 = 2;
			}
				break;
			case DATE_SYM: {
				alt413 = 3;
			}
				break;
			case DATETIME: {
				alt413 = 4;
			}
				break;
			case DECIMAL_SYM: {
				alt413 = 5;
			}
				break;
			case SIGNED_SYM: {
				alt413 = 6;
			}
				break;
			case TIME_SYM: {
				alt413 = 7;
			}
				break;
			case UNSIGNED_SYM: {
				alt413 = 8;
			}
				break;
			default:
				if (state.backtracking > 0) {
					state.failed = true;
					return retval;
				}
				NoViableAltException nvae = new NoViableAltException("", 413,
						0, input);

				throw nvae;
			}

			switch (alt413) {
			case 1:
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:618:2: BINARY (
			// INTEGER_NUM )?
			{
				root_0 = (Object) adaptor.nil();

				BINARY1096 = (Token) match(input, BINARY,
						FOLLOW_BINARY_in_cast_data_type6323);
				if (state.failed)
					return retval;
				if (state.backtracking == 0) {
					BINARY1096_tree = (Object) adaptor.create(BINARY1096);
					adaptor.addChild(root_0, BINARY1096_tree);
				}
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:618:9: (
				// INTEGER_NUM )?
				int alt407 = 2;
				int LA407_0 = input.LA(1);

				if ((LA407_0 == INTEGER_NUM)) {
					alt407 = 1;
				}
				switch (alt407) {
				case 1:
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:618:10:
				// INTEGER_NUM
				{
					INTEGER_NUM1097 = (Token) match(input, INTEGER_NUM,
							FOLLOW_INTEGER_NUM_in_cast_data_type6326);
					if (state.failed)
						return retval;
					if (state.backtracking == 0) {
						INTEGER_NUM1097_tree = (Object) adaptor
								.create(INTEGER_NUM1097);
						adaptor.addChild(root_0, INTEGER_NUM1097_tree);
					}

				}
					break;

				}

			}
				break;
			case 2:
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:619:4: CHAR (
			// INTEGER_NUM )?
			{
				root_0 = (Object) adaptor.nil();

				CHAR1098 = (Token) match(input, CHAR,
						FOLLOW_CHAR_in_cast_data_type6334);
				if (state.failed)
					return retval;
				if (state.backtracking == 0) {
					CHAR1098_tree = (Object) adaptor.create(CHAR1098);
					adaptor.addChild(root_0, CHAR1098_tree);
				}
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:619:9: (
				// INTEGER_NUM )?
				int alt408 = 2;
				int LA408_0 = input.LA(1);

				if ((LA408_0 == INTEGER_NUM)) {
					alt408 = 1;
				}
				switch (alt408) {
				case 1:
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:619:10:
				// INTEGER_NUM
				{
					INTEGER_NUM1099 = (Token) match(input, INTEGER_NUM,
							FOLLOW_INTEGER_NUM_in_cast_data_type6337);
					if (state.failed)
						return retval;
					if (state.backtracking == 0) {
						INTEGER_NUM1099_tree = (Object) adaptor
								.create(INTEGER_NUM1099);
						adaptor.addChild(root_0, INTEGER_NUM1099_tree);
					}

				}
					break;

				}

			}
				break;
			case 3:
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:620:4: DATE_SYM
			{
				root_0 = (Object) adaptor.nil();

				DATE_SYM1100 = (Token) match(input, DATE_SYM,
						FOLLOW_DATE_SYM_in_cast_data_type6345);
				if (state.failed)
					return retval;
				if (state.backtracking == 0) {
					DATE_SYM1100_tree = (Object) adaptor.create(DATE_SYM1100);
					adaptor.addChild(root_0, DATE_SYM1100_tree);
				}

			}
				break;
			case 4:
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:621:4: DATETIME
			{
				root_0 = (Object) adaptor.nil();

				DATETIME1101 = (Token) match(input, DATETIME,
						FOLLOW_DATETIME_in_cast_data_type6350);
				if (state.failed)
					return retval;
				if (state.backtracking == 0) {
					DATETIME1101_tree = (Object) adaptor.create(DATETIME1101);
					adaptor.addChild(root_0, DATETIME1101_tree);
				}

			}
				break;
			case 5:
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:622:4: DECIMAL_SYM (
			// INTEGER_NUM ( COMMA INTEGER_NUM )? )?
			{
				root_0 = (Object) adaptor.nil();

				DECIMAL_SYM1102 = (Token) match(input, DECIMAL_SYM,
						FOLLOW_DECIMAL_SYM_in_cast_data_type6356);
				if (state.failed)
					return retval;
				if (state.backtracking == 0) {
					DECIMAL_SYM1102_tree = (Object) adaptor
							.create(DECIMAL_SYM1102);
					adaptor.addChild(root_0, DECIMAL_SYM1102_tree);
				}
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:622:16: (
				// INTEGER_NUM ( COMMA INTEGER_NUM )? )?
				int alt410 = 2;
				int LA410_0 = input.LA(1);

				if ((LA410_0 == INTEGER_NUM)) {
					alt410 = 1;
				}
				switch (alt410) {
				case 1:
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:622:18:
				// INTEGER_NUM ( COMMA INTEGER_NUM )?
				{
					INTEGER_NUM1103 = (Token) match(input, INTEGER_NUM,
							FOLLOW_INTEGER_NUM_in_cast_data_type6360);
					if (state.failed)
						return retval;
					if (state.backtracking == 0) {
						INTEGER_NUM1103_tree = (Object) adaptor
								.create(INTEGER_NUM1103);
						adaptor.addChild(root_0, INTEGER_NUM1103_tree);
					}
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:622:30: (
					// COMMA INTEGER_NUM )?
					int alt409 = 2;
					int LA409_0 = input.LA(1);

					if ((LA409_0 == COMMA)) {
						alt409 = 1;
					}
					switch (alt409) {
					case 1:
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:622:31: COMMA
					// INTEGER_NUM
					{
						COMMA1104 = (Token) match(input, COMMA,
								FOLLOW_COMMA_in_cast_data_type6363);
						if (state.failed)
							return retval;
						if (state.backtracking == 0) {
							COMMA1104_tree = (Object) adaptor.create(COMMA1104);
							adaptor.addChild(root_0, COMMA1104_tree);
						}
						INTEGER_NUM1105 = (Token) match(input, INTEGER_NUM,
								FOLLOW_INTEGER_NUM_in_cast_data_type6365);
						if (state.failed)
							return retval;
						if (state.backtracking == 0) {
							INTEGER_NUM1105_tree = (Object) adaptor
									.create(INTEGER_NUM1105);
							adaptor.addChild(root_0, INTEGER_NUM1105_tree);
						}

					}
						break;

					}

				}
					break;

				}

			}
				break;
			case 6:
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:623:4: SIGNED_SYM (
			// INTEGER_SYM )?
			{
				root_0 = (Object) adaptor.nil();

				SIGNED_SYM1106 = (Token) match(input, SIGNED_SYM,
						FOLLOW_SIGNED_SYM_in_cast_data_type6375);
				if (state.failed)
					return retval;
				if (state.backtracking == 0) {
					SIGNED_SYM1106_tree = (Object) adaptor
							.create(SIGNED_SYM1106);
					adaptor.addChild(root_0, SIGNED_SYM1106_tree);
				}
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:623:15: (
				// INTEGER_SYM )?
				int alt411 = 2;
				int LA411_0 = input.LA(1);

				if ((LA411_0 == INTEGER_SYM)) {
					alt411 = 1;
				}
				switch (alt411) {
				case 1:
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:623:16:
				// INTEGER_SYM
				{
					INTEGER_SYM1107 = (Token) match(input, INTEGER_SYM,
							FOLLOW_INTEGER_SYM_in_cast_data_type6378);
					if (state.failed)
						return retval;
					if (state.backtracking == 0) {
						INTEGER_SYM1107_tree = (Object) adaptor
								.create(INTEGER_SYM1107);
						adaptor.addChild(root_0, INTEGER_SYM1107_tree);
					}

				}
					break;

				}

			}
				break;
			case 7:
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:624:4: TIME_SYM
			{
				root_0 = (Object) adaptor.nil();

				TIME_SYM1108 = (Token) match(input, TIME_SYM,
						FOLLOW_TIME_SYM_in_cast_data_type6385);
				if (state.failed)
					return retval;
				if (state.backtracking == 0) {
					TIME_SYM1108_tree = (Object) adaptor.create(TIME_SYM1108);
					adaptor.addChild(root_0, TIME_SYM1108_tree);
				}

			}
				break;
			case 8:
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:625:4: UNSIGNED_SYM (
			// INTEGER_SYM )?
			{
				root_0 = (Object) adaptor.nil();

				UNSIGNED_SYM1109 = (Token) match(input, UNSIGNED_SYM,
						FOLLOW_UNSIGNED_SYM_in_cast_data_type6390);
				if (state.failed)
					return retval;
				if (state.backtracking == 0) {
					UNSIGNED_SYM1109_tree = (Object) adaptor
							.create(UNSIGNED_SYM1109);
					adaptor.addChild(root_0, UNSIGNED_SYM1109_tree);
				}
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:625:17: (
				// INTEGER_SYM )?
				int alt412 = 2;
				int LA412_0 = input.LA(1);

				if ((LA412_0 == INTEGER_SYM)) {
					alt412 = 1;
				}
				switch (alt412) {
				case 1:
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:625:18:
				// INTEGER_SYM
				{
					INTEGER_SYM1110 = (Token) match(input, INTEGER_SYM,
							FOLLOW_INTEGER_SYM_in_cast_data_type6393);
					if (state.failed)
						return retval;
					if (state.backtracking == 0) {
						INTEGER_SYM1110_tree = (Object) adaptor
								.create(INTEGER_SYM1110);
						adaptor.addChild(root_0, INTEGER_SYM1110_tree);
					}

				}
					break;

				}

			}
				break;

			}
			retval.stop = input.LT(-1);

			if (state.backtracking == 0) {

				retval.tree = (Object) adaptor.rulePostProcessing(root_0);
				adaptor.setTokenBoundaries(retval.tree, retval.start,
						retval.stop);
			}
		} catch (RecognitionException re) {
			reportError(re);
			recover(input, re);
			retval.tree = (Object) adaptor.errorNode(input, retval.start,
					input.LT(-1), re);

		} finally {
		}
		return retval;
	}

	// $ANTLR end "cast_data_type"

	public static class search_modifier_return extends ParserRuleReturnScope {
		Object tree;

		public Object getTree() {
			return tree;
		}
	};

	// $ANTLR start "search_modifier"
	// C:\\Users\\grand\\Desktop\\another\\MySQL.g:628:1: search_modifier : ( (
	// IN_SYM NATURAL LANGUAGE MODE_SYM ) | ( IN_SYM NATURAL LANGUAGE MODE_SYM
	// WITH QUERY_SYM EXPANSION_SYM ) | ( IN_SYM BOOLEAN_SYM MODE_SYM ) | ( WITH
	// QUERY_SYM EXPANSION_SYM ) );
	public final MySQLParser.search_modifier_return search_modifier()
			throws RecognitionException {
		MySQLParser.search_modifier_return retval = new MySQLParser.search_modifier_return();
		retval.start = input.LT(1);

		Object root_0 = null;

		Token IN_SYM1111 = null;
		Token NATURAL1112 = null;
		Token LANGUAGE1113 = null;
		Token MODE_SYM1114 = null;
		Token IN_SYM1115 = null;
		Token NATURAL1116 = null;
		Token LANGUAGE1117 = null;
		Token MODE_SYM1118 = null;
		Token WITH1119 = null;
		Token QUERY_SYM1120 = null;
		Token EXPANSION_SYM1121 = null;
		Token IN_SYM1122 = null;
		Token BOOLEAN_SYM1123 = null;
		Token MODE_SYM1124 = null;
		Token WITH1125 = null;
		Token QUERY_SYM1126 = null;
		Token EXPANSION_SYM1127 = null;

		Object IN_SYM1111_tree = null;
		Object NATURAL1112_tree = null;
		Object LANGUAGE1113_tree = null;
		Object MODE_SYM1114_tree = null;
		Object IN_SYM1115_tree = null;
		Object NATURAL1116_tree = null;
		Object LANGUAGE1117_tree = null;
		Object MODE_SYM1118_tree = null;
		Object WITH1119_tree = null;
		Object QUERY_SYM1120_tree = null;
		Object EXPANSION_SYM1121_tree = null;
		Object IN_SYM1122_tree = null;
		Object BOOLEAN_SYM1123_tree = null;
		Object MODE_SYM1124_tree = null;
		Object WITH1125_tree = null;
		Object QUERY_SYM1126_tree = null;
		Object EXPANSION_SYM1127_tree = null;

		try {
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:628:16: ( ( IN_SYM
			// NATURAL LANGUAGE MODE_SYM ) | ( IN_SYM NATURAL LANGUAGE MODE_SYM
			// WITH QUERY_SYM EXPANSION_SYM ) | ( IN_SYM BOOLEAN_SYM MODE_SYM )
			// | ( WITH QUERY_SYM EXPANSION_SYM ) )
			int alt414 = 4;
			alt414 = dfa414.predict(input);
			switch (alt414) {
			case 1:
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:629:2: ( IN_SYM
			// NATURAL LANGUAGE MODE_SYM )
			{
				root_0 = (Object) adaptor.nil();

				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:629:2: ( IN_SYM
				// NATURAL LANGUAGE MODE_SYM )
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:629:3: IN_SYM
				// NATURAL LANGUAGE MODE_SYM
				{
					IN_SYM1111 = (Token) match(input, IN_SYM,
							FOLLOW_IN_SYM_in_search_modifier6406);
					if (state.failed)
						return retval;
					if (state.backtracking == 0) {
						IN_SYM1111_tree = (Object) adaptor.create(IN_SYM1111);
						adaptor.addChild(root_0, IN_SYM1111_tree);
					}
					NATURAL1112 = (Token) match(input, NATURAL,
							FOLLOW_NATURAL_in_search_modifier6408);
					if (state.failed)
						return retval;
					if (state.backtracking == 0) {
						NATURAL1112_tree = (Object) adaptor.create(NATURAL1112);
						adaptor.addChild(root_0, NATURAL1112_tree);
					}
					LANGUAGE1113 = (Token) match(input, LANGUAGE,
							FOLLOW_LANGUAGE_in_search_modifier6410);
					if (state.failed)
						return retval;
					if (state.backtracking == 0) {
						LANGUAGE1113_tree = (Object) adaptor
								.create(LANGUAGE1113);
						adaptor.addChild(root_0, LANGUAGE1113_tree);
					}
					MODE_SYM1114 = (Token) match(input, MODE_SYM,
							FOLLOW_MODE_SYM_in_search_modifier6412);
					if (state.failed)
						return retval;
					if (state.backtracking == 0) {
						MODE_SYM1114_tree = (Object) adaptor
								.create(MODE_SYM1114);
						adaptor.addChild(root_0, MODE_SYM1114_tree);
					}

				}

			}
				break;
			case 2:
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:630:4: ( IN_SYM
			// NATURAL LANGUAGE MODE_SYM WITH QUERY_SYM EXPANSION_SYM )
			{
				root_0 = (Object) adaptor.nil();

				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:630:4: ( IN_SYM
				// NATURAL LANGUAGE MODE_SYM WITH QUERY_SYM EXPANSION_SYM )
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:630:5: IN_SYM
				// NATURAL LANGUAGE MODE_SYM WITH QUERY_SYM EXPANSION_SYM
				{
					IN_SYM1115 = (Token) match(input, IN_SYM,
							FOLLOW_IN_SYM_in_search_modifier6419);
					if (state.failed)
						return retval;
					if (state.backtracking == 0) {
						IN_SYM1115_tree = (Object) adaptor.create(IN_SYM1115);
						adaptor.addChild(root_0, IN_SYM1115_tree);
					}
					NATURAL1116 = (Token) match(input, NATURAL,
							FOLLOW_NATURAL_in_search_modifier6421);
					if (state.failed)
						return retval;
					if (state.backtracking == 0) {
						NATURAL1116_tree = (Object) adaptor.create(NATURAL1116);
						adaptor.addChild(root_0, NATURAL1116_tree);
					}
					LANGUAGE1117 = (Token) match(input, LANGUAGE,
							FOLLOW_LANGUAGE_in_search_modifier6423);
					if (state.failed)
						return retval;
					if (state.backtracking == 0) {
						LANGUAGE1117_tree = (Object) adaptor
								.create(LANGUAGE1117);
						adaptor.addChild(root_0, LANGUAGE1117_tree);
					}
					MODE_SYM1118 = (Token) match(input, MODE_SYM,
							FOLLOW_MODE_SYM_in_search_modifier6425);
					if (state.failed)
						return retval;
					if (state.backtracking == 0) {
						MODE_SYM1118_tree = (Object) adaptor
								.create(MODE_SYM1118);
						adaptor.addChild(root_0, MODE_SYM1118_tree);
					}
					WITH1119 = (Token) match(input, WITH,
							FOLLOW_WITH_in_search_modifier6427);
					if (state.failed)
						return retval;
					if (state.backtracking == 0) {
						WITH1119_tree = (Object) adaptor.create(WITH1119);
						adaptor.addChild(root_0, WITH1119_tree);
					}
					QUERY_SYM1120 = (Token) match(input, QUERY_SYM,
							FOLLOW_QUERY_SYM_in_search_modifier6429);
					if (state.failed)
						return retval;
					if (state.backtracking == 0) {
						QUERY_SYM1120_tree = (Object) adaptor
								.create(QUERY_SYM1120);
						adaptor.addChild(root_0, QUERY_SYM1120_tree);
					}
					EXPANSION_SYM1121 = (Token) match(input, EXPANSION_SYM,
							FOLLOW_EXPANSION_SYM_in_search_modifier6431);
					if (state.failed)
						return retval;
					if (state.backtracking == 0) {
						EXPANSION_SYM1121_tree = (Object) adaptor
								.create(EXPANSION_SYM1121);
						adaptor.addChild(root_0, EXPANSION_SYM1121_tree);
					}

				}

			}
				break;
			case 3:
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:631:4: ( IN_SYM
			// BOOLEAN_SYM MODE_SYM )
			{
				root_0 = (Object) adaptor.nil();

				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:631:4: ( IN_SYM
				// BOOLEAN_SYM MODE_SYM )
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:631:5: IN_SYM
				// BOOLEAN_SYM MODE_SYM
				{
					IN_SYM1122 = (Token) match(input, IN_SYM,
							FOLLOW_IN_SYM_in_search_modifier6438);
					if (state.failed)
						return retval;
					if (state.backtracking == 0) {
						IN_SYM1122_tree = (Object) adaptor.create(IN_SYM1122);
						adaptor.addChild(root_0, IN_SYM1122_tree);
					}
					BOOLEAN_SYM1123 = (Token) match(input, BOOLEAN_SYM,
							FOLLOW_BOOLEAN_SYM_in_search_modifier6440);
					if (state.failed)
						return retval;
					if (state.backtracking == 0) {
						BOOLEAN_SYM1123_tree = (Object) adaptor
								.create(BOOLEAN_SYM1123);
						adaptor.addChild(root_0, BOOLEAN_SYM1123_tree);
					}
					MODE_SYM1124 = (Token) match(input, MODE_SYM,
							FOLLOW_MODE_SYM_in_search_modifier6442);
					if (state.failed)
						return retval;
					if (state.backtracking == 0) {
						MODE_SYM1124_tree = (Object) adaptor
								.create(MODE_SYM1124);
						adaptor.addChild(root_0, MODE_SYM1124_tree);
					}

				}

			}
				break;
			case 4:
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:632:4: ( WITH
			// QUERY_SYM EXPANSION_SYM )
			{
				root_0 = (Object) adaptor.nil();

				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:632:4: ( WITH
				// QUERY_SYM EXPANSION_SYM )
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:632:5: WITH
				// QUERY_SYM EXPANSION_SYM
				{
					WITH1125 = (Token) match(input, WITH,
							FOLLOW_WITH_in_search_modifier6449);
					if (state.failed)
						return retval;
					if (state.backtracking == 0) {
						WITH1125_tree = (Object) adaptor.create(WITH1125);
						adaptor.addChild(root_0, WITH1125_tree);
					}
					QUERY_SYM1126 = (Token) match(input, QUERY_SYM,
							FOLLOW_QUERY_SYM_in_search_modifier6451);
					if (state.failed)
						return retval;
					if (state.backtracking == 0) {
						QUERY_SYM1126_tree = (Object) adaptor
								.create(QUERY_SYM1126);
						adaptor.addChild(root_0, QUERY_SYM1126_tree);
					}
					EXPANSION_SYM1127 = (Token) match(input, EXPANSION_SYM,
							FOLLOW_EXPANSION_SYM_in_search_modifier6453);
					if (state.failed)
						return retval;
					if (state.backtracking == 0) {
						EXPANSION_SYM1127_tree = (Object) adaptor
								.create(EXPANSION_SYM1127);
						adaptor.addChild(root_0, EXPANSION_SYM1127_tree);
					}

				}

			}
				break;

			}
			retval.stop = input.LT(-1);

			if (state.backtracking == 0) {

				retval.tree = (Object) adaptor.rulePostProcessing(root_0);
				adaptor.setTokenBoundaries(retval.tree, retval.start,
						retval.stop);
			}
		} catch (RecognitionException re) {
			reportError(re);
			recover(input, re);
			retval.tree = (Object) adaptor.errorNode(input, retval.start,
					input.LT(-1), re);

		} finally {
		}
		return retval;
	}

	// $ANTLR end "search_modifier"

	public static class transcoding_name_return extends ParserRuleReturnScope {
		Object tree;

		public Object getTree() {
			return tree;
		}
	};

	// $ANTLR start "transcoding_name"
	// C:\\Users\\grand\\Desktop\\another\\MySQL.g:635:1: transcoding_name : (
	// LATIN1 | UTF8 );
	public final MySQLParser.transcoding_name_return transcoding_name()
			throws RecognitionException {
		MySQLParser.transcoding_name_return retval = new MySQLParser.transcoding_name_return();
		retval.start = input.LT(1);

		Object root_0 = null;

		Token set1128 = null;

		Object set1128_tree = null;

		try {
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:635:17: ( LATIN1 |
			// UTF8 )
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:
			{
				root_0 = (Object) adaptor.nil();

				set1128 = (Token) input.LT(1);
				if (input.LA(1) == LATIN1 || input.LA(1) == UTF8) {
					input.consume();
					if (state.backtracking == 0)
						adaptor.addChild(root_0,
								(Object) adaptor.create(set1128));
					state.errorRecovery = false;
					state.failed = false;
				} else {
					if (state.backtracking > 0) {
						state.failed = true;
						return retval;
					}
					MismatchedSetException mse = new MismatchedSetException(
							null, input);
					throw mse;
				}

			}

			retval.stop = input.LT(-1);

			if (state.backtracking == 0) {

				retval.tree = (Object) adaptor.rulePostProcessing(root_0);
				adaptor.setTokenBoundaries(retval.tree, retval.start,
						retval.stop);
			}
		} catch (RecognitionException re) {
			reportError(re);
			recover(input, re);
			retval.tree = (Object) adaptor.errorNode(input, retval.start,
					input.LT(-1), re);

		} finally {
		}
		return retval;
	}

	// $ANTLR end "transcoding_name"

	public static class interval_unit_return extends ParserRuleReturnScope {
		Object tree;

		public Object getTree() {
			return tree;
		}
	};

	// $ANTLR start "interval_unit"
	// C:\\Users\\grand\\Desktop\\another\\MySQL.g:640:1: interval_unit : (
	// SECOND | MINUTE | HOUR | DAY_SYM | WEEK | MONTH | QUARTER | YEAR |
	// SECOND_MICROSECOND | MINUTE_MICROSECOND | MINUTE_SECOND |
	// HOUR_MICROSECOND | HOUR_SECOND | HOUR_MINUTE | DAY_MICROSECOND |
	// DAY_SECOND | DAY_MINUTE | DAY_HOUR | YEAR_MONTH );
	public final MySQLParser.interval_unit_return interval_unit()
			throws RecognitionException {
		MySQLParser.interval_unit_return retval = new MySQLParser.interval_unit_return();
		retval.start = input.LT(1);

		Object root_0 = null;

		Token set1129 = null;

		Object set1129_tree = null;

		try {
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:640:14: ( SECOND |
			// MINUTE | HOUR | DAY_SYM | WEEK | MONTH | QUARTER | YEAR |
			// SECOND_MICROSECOND | MINUTE_MICROSECOND | MINUTE_SECOND |
			// HOUR_MICROSECOND | HOUR_SECOND | HOUR_MINUTE | DAY_MICROSECOND |
			// DAY_SECOND | DAY_MINUTE | DAY_HOUR | YEAR_MONTH )
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:
			{
				root_0 = (Object) adaptor.nil();

				set1129 = (Token) input.LT(1);
				if (input.LA(1) == YEAR
						|| (input.LA(1) >= SECOND && input.LA(1) <= YEAR_MONTH)) {
					input.consume();
					if (state.backtracking == 0)
						adaptor.addChild(root_0,
								(Object) adaptor.create(set1129));
					state.errorRecovery = false;
					state.failed = false;
				} else {
					if (state.backtracking > 0) {
						state.failed = true;
						return retval;
					}
					MismatchedSetException mse = new MismatchedSetException(
							null, input);
					throw mse;
				}

			}

			retval.stop = input.LT(-1);

			if (state.backtracking == 0) {

				retval.tree = (Object) adaptor.rulePostProcessing(root_0);
				adaptor.setTokenBoundaries(retval.tree, retval.start,
						retval.stop);
			}
		} catch (RecognitionException re) {
			reportError(re);
			recover(input, re);
			retval.tree = (Object) adaptor.errorNode(input, retval.start,
					input.LT(-1), re);

		} finally {
		}
		return retval;
	}

	// $ANTLR end "interval_unit"

	public static class collation_names_return extends ParserRuleReturnScope {
		Object tree;

		public Object getTree() {
			return tree;
		}
	};

	// $ANTLR start "collation_names"
	// C:\\Users\\grand\\Desktop\\another\\MySQL.g:662:1: collation_names : (
	// LATIN1_GENERAL_CS | LATIN1_BIN );
	public final MySQLParser.collation_names_return collation_names()
			throws RecognitionException {
		MySQLParser.collation_names_return retval = new MySQLParser.collation_names_return();
		retval.start = input.LT(1);

		Object root_0 = null;

		Token set1130 = null;

		Object set1130_tree = null;

		try {
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:662:16: (
			// LATIN1_GENERAL_CS | LATIN1_BIN )
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:
			{
				root_0 = (Object) adaptor.nil();

				set1130 = (Token) input.LT(1);
				if ((input.LA(1) >= LATIN1_GENERAL_CS && input.LA(1) <= LATIN1_BIN)) {
					input.consume();
					if (state.backtracking == 0)
						adaptor.addChild(root_0,
								(Object) adaptor.create(set1130));
					state.errorRecovery = false;
					state.failed = false;
				} else {
					if (state.backtracking > 0) {
						state.failed = true;
						return retval;
					}
					MismatchedSetException mse = new MismatchedSetException(
							null, input);
					throw mse;
				}

			}

			retval.stop = input.LT(-1);

			if (state.backtracking == 0) {

				retval.tree = (Object) adaptor.rulePostProcessing(root_0);
				adaptor.setTokenBoundaries(retval.tree, retval.start,
						retval.stop);
			}
		} catch (RecognitionException re) {
			reportError(re);
			recover(input, re);
			retval.tree = (Object) adaptor.errorNode(input, retval.start,
					input.LT(-1), re);

		} finally {
		}
		return retval;
	}

	// $ANTLR end "collation_names"

	public static class string_literal_return extends ParserRuleReturnScope {
		Object tree;

		public Object getTree() {
			return tree;
		}
	};

	// $ANTLR start "string_literal"
	// C:\\Users\\grand\\Desktop\\another\\MySQL.g:672:1: string_literal :
	// TEXT_STRING ;
	public final MySQLParser.string_literal_return string_literal()
			throws RecognitionException {
		MySQLParser.string_literal_return retval = new MySQLParser.string_literal_return();
		retval.start = input.LT(1);

		Object root_0 = null;

		Token TEXT_STRING1131 = null;

		Object TEXT_STRING1131_tree = null;

		try {
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:672:15: ( TEXT_STRING
			// )
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:672:18: TEXT_STRING
			{
				root_0 = (Object) adaptor.nil();

				TEXT_STRING1131 = (Token) match(input, TEXT_STRING,
						FOLLOW_TEXT_STRING_in_string_literal6599);
				if (state.failed)
					return retval;
				if (state.backtracking == 0) {
					TEXT_STRING1131_tree = (Object) adaptor
							.create(TEXT_STRING1131);
					adaptor.addChild(root_0, TEXT_STRING1131_tree);
				}

			}

			retval.stop = input.LT(-1);

			if (state.backtracking == 0) {

				retval.tree = (Object) adaptor.rulePostProcessing(root_0);
				adaptor.setTokenBoundaries(retval.tree, retval.start,
						retval.stop);
			}
		} catch (RecognitionException re) {
			reportError(re);
			recover(input, re);
			retval.tree = (Object) adaptor.errorNode(input, retval.start,
					input.LT(-1), re);

		} finally {
		}
		return retval;
	}

	// $ANTLR end "string_literal"

	public static class number_literal_return extends ParserRuleReturnScope {
		Object tree;

		public Object getTree() {
			return tree;
		}
	};

	// $ANTLR start "number_literal"
	// C:\\Users\\grand\\Desktop\\another\\MySQL.g:673:1: number_literal : (
	// PLUS | MINUS )? ( INTEGER_NUM | REAL_NUMBER ) ;
	public final MySQLParser.number_literal_return number_literal()
			throws RecognitionException {
		MySQLParser.number_literal_return retval = new MySQLParser.number_literal_return();
		retval.start = input.LT(1);

		Object root_0 = null;

		Token set1132 = null;
		Token set1133 = null;

		Object set1132_tree = null;
		Object set1133_tree = null;

		try {
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:673:15: ( ( PLUS |
			// MINUS )? ( INTEGER_NUM | REAL_NUMBER ) )
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:673:18: ( PLUS |
			// MINUS )? ( INTEGER_NUM | REAL_NUMBER )
			{
				root_0 = (Object) adaptor.nil();

				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:673:18: ( PLUS |
				// MINUS )?
				int alt415 = 2;
				int LA415_0 = input.LA(1);

				if (((LA415_0 >= PLUS && LA415_0 <= MINUS))) {
					alt415 = 1;
				}
				switch (alt415) {
				case 1:
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:
				{
					set1132 = (Token) input.LT(1);
					if ((input.LA(1) >= PLUS && input.LA(1) <= MINUS)) {
						input.consume();
						if (state.backtracking == 0)
							adaptor.addChild(root_0,
									(Object) adaptor.create(set1132));
						state.errorRecovery = false;
						state.failed = false;
					} else {
						if (state.backtracking > 0) {
							state.failed = true;
							return retval;
						}
						MismatchedSetException mse = new MismatchedSetException(
								null, input);
						throw mse;
					}

				}
					break;

				}

				set1133 = (Token) input.LT(1);
				if (input.LA(1) == INTEGER_NUM || input.LA(1) == REAL_NUMBER) {
					input.consume();
					if (state.backtracking == 0)
						adaptor.addChild(root_0,
								(Object) adaptor.create(set1133));
					state.errorRecovery = false;
					state.failed = false;
				} else {
					if (state.backtracking > 0) {
						state.failed = true;
						return retval;
					}
					MismatchedSetException mse = new MismatchedSetException(
							null, input);
					throw mse;
				}

			}

			retval.stop = input.LT(-1);

			if (state.backtracking == 0) {

				retval.tree = (Object) adaptor.rulePostProcessing(root_0);
				adaptor.setTokenBoundaries(retval.tree, retval.start,
						retval.stop);
			}
		} catch (RecognitionException re) {
			reportError(re);
			recover(input, re);
			retval.tree = (Object) adaptor.errorNode(input, retval.start,
					input.LT(-1), re);

		} finally {
		}
		return retval;
	}

	// $ANTLR end "number_literal"

	public static class hex_literal_return extends ParserRuleReturnScope {
		Object tree;

		public Object getTree() {
			return tree;
		}
	};

	// $ANTLR start "hex_literal"
	// C:\\Users\\grand\\Desktop\\another\\MySQL.g:675:1: hex_literal :
	// HEX_DIGIT ;
	public final MySQLParser.hex_literal_return hex_literal()
			throws RecognitionException {
		MySQLParser.hex_literal_return retval = new MySQLParser.hex_literal_return();
		retval.start = input.LT(1);

		Object root_0 = null;

		Token HEX_DIGIT1134 = null;

		Object HEX_DIGIT1134_tree = null;

		try {
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:675:12: ( HEX_DIGIT )
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:675:15: HEX_DIGIT
			{
				root_0 = (Object) adaptor.nil();

				HEX_DIGIT1134 = (Token) match(input, HEX_DIGIT,
						FOLLOW_HEX_DIGIT_in_hex_literal6631);
				if (state.failed)
					return retval;
				if (state.backtracking == 0) {
					HEX_DIGIT1134_tree = (Object) adaptor.create(HEX_DIGIT1134);
					adaptor.addChild(root_0, HEX_DIGIT1134_tree);
				}

			}

			retval.stop = input.LT(-1);

			if (state.backtracking == 0) {

				retval.tree = (Object) adaptor.rulePostProcessing(root_0);
				adaptor.setTokenBoundaries(retval.tree, retval.start,
						retval.stop);
			}
		} catch (RecognitionException re) {
			reportError(re);
			recover(input, re);
			retval.tree = (Object) adaptor.errorNode(input, retval.start,
					input.LT(-1), re);

		} finally {
		}
		return retval;
	}

	// $ANTLR end "hex_literal"

	public static class boolean_literal_return extends ParserRuleReturnScope {
		Object tree;

		public Object getTree() {
			return tree;
		}
	};

	// $ANTLR start "boolean_literal"
	// C:\\Users\\grand\\Desktop\\another\\MySQL.g:676:1: boolean_literal : (
	// TRUE_SYM | FALSE_SYM );
	public final MySQLParser.boolean_literal_return boolean_literal()
			throws RecognitionException {
		MySQLParser.boolean_literal_return retval = new MySQLParser.boolean_literal_return();
		retval.start = input.LT(1);

		Object root_0 = null;

		Token set1135 = null;

		Object set1135_tree = null;

		try {
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:676:16: ( TRUE_SYM |
			// FALSE_SYM )
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:
			{
				root_0 = (Object) adaptor.nil();

				set1135 = (Token) input.LT(1);
				if ((input.LA(1) >= TRUE_SYM && input.LA(1) <= FALSE_SYM)) {
					input.consume();
					if (state.backtracking == 0)
						adaptor.addChild(root_0,
								(Object) adaptor.create(set1135));
					state.errorRecovery = false;
					state.failed = false;
				} else {
					if (state.backtracking > 0) {
						state.failed = true;
						return retval;
					}
					MismatchedSetException mse = new MismatchedSetException(
							null, input);
					throw mse;
				}

			}

			retval.stop = input.LT(-1);

			if (state.backtracking == 0) {

				retval.tree = (Object) adaptor.rulePostProcessing(root_0);
				adaptor.setTokenBoundaries(retval.tree, retval.start,
						retval.stop);
			}
		} catch (RecognitionException re) {
			reportError(re);
			recover(input, re);
			retval.tree = (Object) adaptor.errorNode(input, retval.start,
					input.LT(-1), re);

		} finally {
		}
		return retval;
	}

	// $ANTLR end "boolean_literal"

	public static class bit_literal_return extends ParserRuleReturnScope {
		Object tree;

		public Object getTree() {
			return tree;
		}
	};

	// $ANTLR start "bit_literal"
	// C:\\Users\\grand\\Desktop\\another\\MySQL.g:677:1: bit_literal : BIT_NUM
	// ;
	public final MySQLParser.bit_literal_return bit_literal()
			throws RecognitionException {
		MySQLParser.bit_literal_return retval = new MySQLParser.bit_literal_return();
		retval.start = input.LT(1);

		Object root_0 = null;

		Token BIT_NUM1136 = null;

		Object BIT_NUM1136_tree = null;

		try {
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:677:12: ( BIT_NUM )
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:677:15: BIT_NUM
			{
				root_0 = (Object) adaptor.nil();

				BIT_NUM1136 = (Token) match(input, BIT_NUM,
						FOLLOW_BIT_NUM_in_bit_literal6649);
				if (state.failed)
					return retval;
				if (state.backtracking == 0) {
					BIT_NUM1136_tree = (Object) adaptor.create(BIT_NUM1136);
					adaptor.addChild(root_0, BIT_NUM1136_tree);
				}

			}

			retval.stop = input.LT(-1);

			if (state.backtracking == 0) {

				retval.tree = (Object) adaptor.rulePostProcessing(root_0);
				adaptor.setTokenBoundaries(retval.tree, retval.start,
						retval.stop);
			}
		} catch (RecognitionException re) {
			reportError(re);
			recover(input, re);
			retval.tree = (Object) adaptor.errorNode(input, retval.start,
					input.LT(-1), re);

		} finally {
		}
		return retval;
	}

	// $ANTLR end "bit_literal"

	public static class literal_value_return extends ParserRuleReturnScope {
		Object tree;

		public Object getTree() {
			return tree;
		}
	};

	// $ANTLR start "literal_value"
	// C:\\Users\\grand\\Desktop\\another\\MySQL.g:680:1: literal_value : (
	// string_literal | number_literal | hex_literal | boolean_literal |
	// bit_literal | NULL_SYM ) ;
	public final MySQLParser.literal_value_return literal_value()
			throws RecognitionException {
		MySQLParser.literal_value_return retval = new MySQLParser.literal_value_return();
		retval.start = input.LT(1);

		Object root_0 = null;

		Token NULL_SYM1142 = null;
		MySQLParser.string_literal_return string_literal1137 = null;

		MySQLParser.number_literal_return number_literal1138 = null;

		MySQLParser.hex_literal_return hex_literal1139 = null;

		MySQLParser.boolean_literal_return boolean_literal1140 = null;

		MySQLParser.bit_literal_return bit_literal1141 = null;

		Object NULL_SYM1142_tree = null;

		try {
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:680:14: ( (
			// string_literal | number_literal | hex_literal | boolean_literal |
			// bit_literal | NULL_SYM ) )
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:681:9: (
			// string_literal | number_literal | hex_literal | boolean_literal |
			// bit_literal | NULL_SYM )
			{
				root_0 = (Object) adaptor.nil();

				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:681:9: (
				// string_literal | number_literal | hex_literal |
				// boolean_literal | bit_literal | NULL_SYM )
				int alt416 = 6;
				switch (input.LA(1)) {
				case TEXT_STRING: {
					alt416 = 1;
				}
					break;
				case INTEGER_NUM:
				case PLUS:
				case MINUS:
				case REAL_NUMBER: {
					alt416 = 2;
				}
					break;
				case HEX_DIGIT: {
					alt416 = 3;
				}
					break;
				case TRUE_SYM:
				case FALSE_SYM: {
					alt416 = 4;
				}
					break;
				case BIT_NUM: {
					alt416 = 5;
				}
					break;
				case NULL_SYM: {
					alt416 = 6;
				}
					break;
				default:
					if (state.backtracking > 0) {
						state.failed = true;
						return retval;
					}
					NoViableAltException nvae = new NoViableAltException("",
							416, 0, input);

					throw nvae;
				}

				switch (alt416) {
				case 1:
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:681:11:
				// string_literal
				{
					pushFollow(FOLLOW_string_literal_in_literal_value6667);
					string_literal1137 = string_literal();

					state._fsp--;
					if (state.failed)
						return retval;
					if (state.backtracking == 0)
						adaptor.addChild(root_0, string_literal1137.getTree());

				}
					break;
				case 2:
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:681:28:
				// number_literal
				{
					pushFollow(FOLLOW_number_literal_in_literal_value6671);
					number_literal1138 = number_literal();

					state._fsp--;
					if (state.failed)
						return retval;
					if (state.backtracking == 0)
						adaptor.addChild(root_0, number_literal1138.getTree());

				}
					break;
				case 3:
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:681:45:
				// hex_literal
				{
					pushFollow(FOLLOW_hex_literal_in_literal_value6675);
					hex_literal1139 = hex_literal();

					state._fsp--;
					if (state.failed)
						return retval;
					if (state.backtracking == 0)
						adaptor.addChild(root_0, hex_literal1139.getTree());

				}
					break;
				case 4:
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:681:59:
				// boolean_literal
				{
					pushFollow(FOLLOW_boolean_literal_in_literal_value6679);
					boolean_literal1140 = boolean_literal();

					state._fsp--;
					if (state.failed)
						return retval;
					if (state.backtracking == 0)
						adaptor.addChild(root_0, boolean_literal1140.getTree());

				}
					break;
				case 5:
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:681:77:
				// bit_literal
				{
					pushFollow(FOLLOW_bit_literal_in_literal_value6683);
					bit_literal1141 = bit_literal();

					state._fsp--;
					if (state.failed)
						return retval;
					if (state.backtracking == 0)
						adaptor.addChild(root_0, bit_literal1141.getTree());

				}
					break;
				case 6:
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:681:91: NULL_SYM
				{
					NULL_SYM1142 = (Token) match(input, NULL_SYM,
							FOLLOW_NULL_SYM_in_literal_value6687);
					if (state.failed)
						return retval;
					if (state.backtracking == 0) {
						NULL_SYM1142_tree = (Object) adaptor
								.create(NULL_SYM1142);
						adaptor.addChild(root_0, NULL_SYM1142_tree);
					}

				}
					break;

				}

			}

			retval.stop = input.LT(-1);

			if (state.backtracking == 0) {

				retval.tree = (Object) adaptor.rulePostProcessing(root_0);
				adaptor.setTokenBoundaries(retval.tree, retval.start,
						retval.stop);
			}
		} catch (RecognitionException re) {
			reportError(re);
			recover(input, re);
			retval.tree = (Object) adaptor.errorNode(input, retval.start,
					input.LT(-1), re);

		} finally {
		}
		return retval;
	}

	// $ANTLR end "literal_value"

	public static class functionList_return extends ParserRuleReturnScope {
		Object tree;

		public Object getTree() {
			return tree;
		}
	};

	// $ANTLR start "functionList"
	// C:\\Users\\grand\\Desktop\\another\\MySQL.g:688:1: functionList : (
	// number_functions | char_functions | time_functions | other_functions );
	public final MySQLParser.functionList_return functionList()
			throws RecognitionException {
		MySQLParser.functionList_return retval = new MySQLParser.functionList_return();
		retval.start = input.LT(1);

		Object root_0 = null;

		MySQLParser.number_functions_return number_functions1143 = null;

		MySQLParser.char_functions_return char_functions1144 = null;

		MySQLParser.time_functions_return time_functions1145 = null;

		MySQLParser.other_functions_return other_functions1146 = null;

		try {
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:688:13: (
			// number_functions | char_functions | time_functions |
			// other_functions )
			int alt417 = 4;
			switch (input.LA(1)) {
			case TRUNCATE:
			case ABS:
			case ACOS:
			case ASIN:
			case ATAN2:
			case ATAN:
			case CEIL:
			case CEILING:
			case CONV:
			case COS:
			case COT:
			case CRC32:
			case DEGREES:
			case EXP:
			case FLOOR:
			case LN:
			case LOG10:
			case LOG2:
			case LOG:
			case MOD:
			case PI:
			case POW:
			case POWER:
			case RADIANS:
			case RAND:
			case ROUND:
			case SIGN:
			case SIN:
			case SQRT:
			case TAN: {
				alt417 = 1;
			}
				break;
			case LOAD_FILE:
			case MAKE_SET: {
				int LA417_2 = input.LA(2);

				if ((synpred660_MySQL())) {
					alt417 = 2;
				} else if ((true)) {
					alt417 = 4;
				} else {
					if (state.backtracking > 0) {
						state.failed = true;
						return retval;
					}
					NoViableAltException nvae = new NoViableAltException("",
							417, 2, input);

					throw nvae;
				}
			}
				break;
			case DATE_SYM:
			case TIME_SYM:
			case TIMESTAMP:
			case YEAR:
			case SECOND:
			case MINUTE:
			case HOUR:
			case WEEK:
			case MONTH:
			case QUARTER:
			case ADDDATE:
			case ADDTIME:
			case CONVERT_TZ:
			case CURDATE:
			case CURTIME:
			case DATE_ADD:
			case DATE_FORMAT:
			case DATE_SUB:
			case DATEDIFF:
			case DAYNAME:
			case DAYOFMONTH:
			case DAYOFWEEK:
			case DAYOFYEAR:
			case EXTRACT:
			case FROM_DAYS:
			case FROM_UNIXTIME:
			case GET_FORMAT:
			case LAST_DAY:
			case MAKEDATE:
			case MAKETIME:
			case MICROSECOND:
			case MONTHNAME:
			case NOW:
			case PERIOD_ADD:
			case PERIOD_DIFF:
			case SEC_TO_TIME:
			case STR_TO_DATE:
			case SUBTIME:
			case SYSDATE:
			case TIME_FORMAT:
			case TIME_TO_SEC:
			case TIMEDIFF:
			case TIMESTAMPADD:
			case TIMESTAMPDIFF:
			case TO_DAYS:
			case TO_SECONDS:
			case UNIX_TIMESTAMP:
			case UTC_DATE:
			case UTC_TIME:
			case UTC_TIMESTAMP:
			case WEEKDAY:
			case WEEKOFYEAR:
			case YEARWEEK: {
				alt417 = 3;
			}
				break;
			case INSERT:
			case CHAR:
			case REPLACE:
			case ASCII_SYM:
			case BIN:
			case BIT_LENGTH:
			case CHAR_LENGTH:
			case CONCAT_WS:
			case CONCAT:
			case ELT:
			case EXPORT_SET:
			case FIELD:
			case FIND_IN_SET:
			case FORMAT:
			case FROM_BASE64:
			case HEX:
			case INSTR:
			case LEFT:
			case LENGTH:
			case LOCATE:
			case LOWER:
			case LPAD:
			case LTRIM:
			case MID:
			case OCT:
			case ORD:
			case QUOTE:
			case REPEAT:
			case REVERSE:
			case RIGHT:
			case RPAD:
			case RTRIM:
			case SOUNDEX:
			case SPACE:
			case STRCMP:
			case SUBSTRING_INDEX:
			case SUBSTRING:
			case TO_BASE64:
			case TRIM:
			case UNHEX:
			case UPPER:
			case WEIGHT_STRING: {
				alt417 = 2;
			}
				break;
			case VALUES:
			case DEFAULT:
			case IF:
			case PASSWORD:
			case CURRENT_USER:
			case IFNULL:
			case AES_ENCRYPT:
			case AES_DECRYPT:
			case DECODE:
			case ENCODE:
			case DES_DECRYPT:
			case DES_ENCRYPT:
			case ENCRYPT:
			case MD5:
			case OLD_PASSWORD:
			case BENCHMARK:
			case CHARSET:
			case COERCIBILITY:
			case COLLATION:
			case CONNECTION_ID:
			case DATABASE:
			case SCHEMA:
			case USER:
			case SESSION_USER:
			case SYSTEM_USER:
			case VERSION_SYM:
			case FOUND_ROWS:
			case LAST_INSERT_ID:
			case GET_LOCK:
			case RELEASE_LOCK:
			case IS_FREE_LOCK:
			case IS_USED_LOCK:
			case MASTER_POS_WAIT:
			case INET_ATON:
			case INET_NTOA:
			case NAME_CONST:
			case SLEEP:
			case UUID: {
				alt417 = 4;
			}
				break;
			default:
				if (state.backtracking > 0) {
					state.failed = true;
					return retval;
				}
				NoViableAltException nvae = new NoViableAltException("", 417,
						0, input);

				throw nvae;
			}

			switch (alt417) {
			case 1:
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:689:4:
			// number_functions
			{
				root_0 = (Object) adaptor.nil();

				pushFollow(FOLLOW_number_functions_in_functionList6705);
				number_functions1143 = number_functions();

				state._fsp--;
				if (state.failed)
					return retval;
				if (state.backtracking == 0)
					adaptor.addChild(root_0, number_functions1143.getTree());

			}
				break;
			case 2:
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:690:4: char_functions
			{
				root_0 = (Object) adaptor.nil();

				pushFollow(FOLLOW_char_functions_in_functionList6711);
				char_functions1144 = char_functions();

				state._fsp--;
				if (state.failed)
					return retval;
				if (state.backtracking == 0)
					adaptor.addChild(root_0, char_functions1144.getTree());

			}
				break;
			case 3:
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:691:4: time_functions
			{
				root_0 = (Object) adaptor.nil();

				pushFollow(FOLLOW_time_functions_in_functionList6717);
				time_functions1145 = time_functions();

				state._fsp--;
				if (state.failed)
					return retval;
				if (state.backtracking == 0)
					adaptor.addChild(root_0, time_functions1145.getTree());

			}
				break;
			case 4:
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:692:4:
			// other_functions
			{
				root_0 = (Object) adaptor.nil();

				pushFollow(FOLLOW_other_functions_in_functionList6722);
				other_functions1146 = other_functions();

				state._fsp--;
				if (state.failed)
					return retval;
				if (state.backtracking == 0)
					adaptor.addChild(root_0, other_functions1146.getTree());

			}
				break;

			}
			retval.stop = input.LT(-1);

			if (state.backtracking == 0) {

				retval.tree = (Object) adaptor.rulePostProcessing(root_0);
				adaptor.setTokenBoundaries(retval.tree, retval.start,
						retval.stop);
			}
		} catch (RecognitionException re) {
			reportError(re);
			recover(input, re);
			retval.tree = (Object) adaptor.errorNode(input, retval.start,
					input.LT(-1), re);

		} finally {
		}
		return retval;
	}

	// $ANTLR end "functionList"

	public static class number_functions_return extends ParserRuleReturnScope {
		Object tree;

		public Object getTree() {
			return tree;
		}
	};

	// $ANTLR start "number_functions"
	// C:\\Users\\grand\\Desktop\\another\\MySQL.g:695:1: number_functions : (
	// ABS | ACOS | ASIN | ATAN2 | ATAN | CEIL | CEILING | CONV | COS | COT |
	// CRC32 | DEGREES | EXP | FLOOR | LN | LOG10 | LOG2 | LOG | MOD | PI | POW
	// | POWER | RADIANS | RAND | ROUND | SIGN | SIN | SQRT | TAN | TRUNCATE );
	public final MySQLParser.number_functions_return number_functions()
			throws RecognitionException {
		MySQLParser.number_functions_return retval = new MySQLParser.number_functions_return();
		retval.start = input.LT(1);

		Object root_0 = null;

		Token set1147 = null;

		Object set1147_tree = null;

		try {
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:695:17: ( ABS | ACOS
			// | ASIN | ATAN2 | ATAN | CEIL | CEILING | CONV | COS | COT | CRC32
			// | DEGREES | EXP | FLOOR | LN | LOG10 | LOG2 | LOG | MOD | PI |
			// POW | POWER | RADIANS | RAND | ROUND | SIGN | SIN | SQRT | TAN |
			// TRUNCATE )
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:
			{
				root_0 = (Object) adaptor.nil();

				set1147 = (Token) input.LT(1);
				if (input.LA(1) == TRUNCATE
						|| (input.LA(1) >= ABS && input.LA(1) <= TAN)) {
					input.consume();
					if (state.backtracking == 0)
						adaptor.addChild(root_0,
								(Object) adaptor.create(set1147));
					state.errorRecovery = false;
					state.failed = false;
				} else {
					if (state.backtracking > 0) {
						state.failed = true;
						return retval;
					}
					MismatchedSetException mse = new MismatchedSetException(
							null, input);
					throw mse;
				}

			}

			retval.stop = input.LT(-1);

			if (state.backtracking == 0) {

				retval.tree = (Object) adaptor.rulePostProcessing(root_0);
				adaptor.setTokenBoundaries(retval.tree, retval.start,
						retval.stop);
			}
		} catch (RecognitionException re) {
			reportError(re);
			recover(input, re);
			retval.tree = (Object) adaptor.errorNode(input, retval.start,
					input.LT(-1), re);

		} finally {
		}
		return retval;
	}

	// $ANTLR end "number_functions"

	public static class char_functions_return extends ParserRuleReturnScope {
		Object tree;

		public Object getTree() {
			return tree;
		}
	};

	// $ANTLR start "char_functions"
	// C:\\Users\\grand\\Desktop\\another\\MySQL.g:728:1: char_functions : (
	// ASCII_SYM | BIN | BIT_LENGTH | CHAR_LENGTH | CHAR | CONCAT_WS | CONCAT |
	// ELT | EXPORT_SET | FIELD | FIND_IN_SET | FORMAT | FROM_BASE64 | HEX |
	// INSERT | INSTR | LEFT | LENGTH | LOAD_FILE | LOCATE | LOWER | LPAD |
	// LTRIM | MAKE_SET | MID | OCT | ORD | QUOTE | REPEAT | REPLACE | REVERSE |
	// RIGHT | RPAD | RTRIM | SOUNDEX | SPACE | STRCMP | SUBSTRING_INDEX |
	// SUBSTRING | TO_BASE64 | TRIM | UNHEX | UPPER | WEIGHT_STRING );
	public final MySQLParser.char_functions_return char_functions()
			throws RecognitionException {
		MySQLParser.char_functions_return retval = new MySQLParser.char_functions_return();
		retval.start = input.LT(1);

		Object root_0 = null;

		Token set1148 = null;

		Object set1148_tree = null;

		try {
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:728:15: ( ASCII_SYM |
			// BIN | BIT_LENGTH | CHAR_LENGTH | CHAR | CONCAT_WS | CONCAT | ELT
			// | EXPORT_SET | FIELD | FIND_IN_SET | FORMAT | FROM_BASE64 | HEX |
			// INSERT | INSTR | LEFT | LENGTH | LOAD_FILE | LOCATE | LOWER |
			// LPAD | LTRIM | MAKE_SET | MID | OCT | ORD | QUOTE | REPEAT |
			// REPLACE | REVERSE | RIGHT | RPAD | RTRIM | SOUNDEX | SPACE |
			// STRCMP | SUBSTRING_INDEX | SUBSTRING | TO_BASE64 | TRIM | UNHEX |
			// UPPER | WEIGHT_STRING )
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:
			{
				root_0 = (Object) adaptor.nil();

				set1148 = (Token) input.LT(1);
				if (input.LA(1) == INSERT || input.LA(1) == CHAR
						|| input.LA(1) == REPLACE || input.LA(1) == ASCII_SYM
						|| (input.LA(1) >= BIN && input.LA(1) <= WEIGHT_STRING)) {
					input.consume();
					if (state.backtracking == 0)
						adaptor.addChild(root_0,
								(Object) adaptor.create(set1148));
					state.errorRecovery = false;
					state.failed = false;
				} else {
					if (state.backtracking > 0) {
						state.failed = true;
						return retval;
					}
					MismatchedSetException mse = new MismatchedSetException(
							null, input);
					throw mse;
				}

			}

			retval.stop = input.LT(-1);

			if (state.backtracking == 0) {

				retval.tree = (Object) adaptor.rulePostProcessing(root_0);
				adaptor.setTokenBoundaries(retval.tree, retval.start,
						retval.stop);
			}
		} catch (RecognitionException re) {
			reportError(re);
			recover(input, re);
			retval.tree = (Object) adaptor.errorNode(input, retval.start,
					input.LT(-1), re);

		} finally {
		}
		return retval;
	}

	// $ANTLR end "char_functions"

	public static class time_functions_return extends ParserRuleReturnScope {
		Object tree;

		public Object getTree() {
			return tree;
		}
	};

	// $ANTLR start "time_functions"
	// C:\\Users\\grand\\Desktop\\another\\MySQL.g:775:1: time_functions : (
	// ADDDATE | ADDTIME | CONVERT_TZ | CURDATE | CURTIME | DATE_ADD |
	// DATE_FORMAT | DATE_SUB | DATE_SYM | DATEDIFF | DAYNAME | DAYOFMONTH |
	// DAYOFWEEK | DAYOFYEAR | EXTRACT | FROM_DAYS | FROM_UNIXTIME | GET_FORMAT
	// | HOUR | LAST_DAY | MAKEDATE | MAKETIME | MICROSECOND | MINUTE | MONTH |
	// MONTHNAME | NOW | PERIOD_ADD | PERIOD_DIFF | QUARTER | SEC_TO_TIME |
	// SECOND | STR_TO_DATE | SUBTIME | SYSDATE | TIME_FORMAT | TIME_TO_SEC |
	// TIME_SYM | TIMEDIFF | TIMESTAMP | TIMESTAMPADD | TIMESTAMPDIFF | TO_DAYS
	// | TO_SECONDS | UNIX_TIMESTAMP | UTC_DATE | UTC_TIME | UTC_TIMESTAMP |
	// WEEK | WEEKDAY | WEEKOFYEAR | YEAR | YEARWEEK );
	public final MySQLParser.time_functions_return time_functions()
			throws RecognitionException {
		MySQLParser.time_functions_return retval = new MySQLParser.time_functions_return();
		retval.start = input.LT(1);

		Object root_0 = null;

		Token set1149 = null;

		Object set1149_tree = null;

		try {
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:775:15: ( ADDDATE |
			// ADDTIME | CONVERT_TZ | CURDATE | CURTIME | DATE_ADD | DATE_FORMAT
			// | DATE_SUB | DATE_SYM | DATEDIFF | DAYNAME | DAYOFMONTH |
			// DAYOFWEEK | DAYOFYEAR | EXTRACT | FROM_DAYS | FROM_UNIXTIME |
			// GET_FORMAT | HOUR | LAST_DAY | MAKEDATE | MAKETIME | MICROSECOND
			// | MINUTE | MONTH | MONTHNAME | NOW | PERIOD_ADD | PERIOD_DIFF |
			// QUARTER | SEC_TO_TIME | SECOND | STR_TO_DATE | SUBTIME | SYSDATE
			// | TIME_FORMAT | TIME_TO_SEC | TIME_SYM | TIMEDIFF | TIMESTAMP |
			// TIMESTAMPADD | TIMESTAMPDIFF | TO_DAYS | TO_SECONDS |
			// UNIX_TIMESTAMP | UTC_DATE | UTC_TIME | UTC_TIMESTAMP | WEEK |
			// WEEKDAY | WEEKOFYEAR | YEAR | YEARWEEK )
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:
			{
				root_0 = (Object) adaptor.nil();

				set1149 = (Token) input.LT(1);
				if ((input.LA(1) >= DATE_SYM && input.LA(1) <= TIMESTAMP)
						|| input.LA(1) == YEAR
						|| (input.LA(1) >= SECOND && input.LA(1) <= HOUR)
						|| (input.LA(1) >= WEEK && input.LA(1) <= QUARTER)
						|| (input.LA(1) >= ADDDATE && input.LA(1) <= YEARWEEK)) {
					input.consume();
					if (state.backtracking == 0)
						adaptor.addChild(root_0,
								(Object) adaptor.create(set1149));
					state.errorRecovery = false;
					state.failed = false;
				} else {
					if (state.backtracking > 0) {
						state.failed = true;
						return retval;
					}
					MismatchedSetException mse = new MismatchedSetException(
							null, input);
					throw mse;
				}

			}

			retval.stop = input.LT(-1);

			if (state.backtracking == 0) {

				retval.tree = (Object) adaptor.rulePostProcessing(root_0);
				adaptor.setTokenBoundaries(retval.tree, retval.start,
						retval.stop);
			}
		} catch (RecognitionException re) {
			reportError(re);
			recover(input, re);
			retval.tree = (Object) adaptor.errorNode(input, retval.start,
					input.LT(-1), re);

		} finally {
		}
		return retval;
	}

	// $ANTLR end "time_functions"

	public static class other_functions_return extends ParserRuleReturnScope {
		Object tree;

		public Object getTree() {
			return tree;
		}
	};

	// $ANTLR start "other_functions"
	// C:\\Users\\grand\\Desktop\\another\\MySQL.g:831:1: other_functions : (
	// MAKE_SET | LOAD_FILE | IF | IFNULL | AES_ENCRYPT | AES_DECRYPT | DECODE |
	// ENCODE | DES_DECRYPT | DES_ENCRYPT | ENCRYPT | MD5 | OLD_PASSWORD |
	// PASSWORD | BENCHMARK | CHARSET | COERCIBILITY | COLLATION | CONNECTION_ID
	// | CURRENT_USER | DATABASE | SCHEMA | USER | SESSION_USER | SYSTEM_USER |
	// VERSION_SYM | FOUND_ROWS | LAST_INSERT_ID | DEFAULT | GET_LOCK |
	// RELEASE_LOCK | IS_FREE_LOCK | IS_USED_LOCK | MASTER_POS_WAIT | INET_ATON
	// | INET_NTOA | NAME_CONST | SLEEP | UUID | VALUES );
	public final MySQLParser.other_functions_return other_functions()
			throws RecognitionException {
		MySQLParser.other_functions_return retval = new MySQLParser.other_functions_return();
		retval.start = input.LT(1);

		Object root_0 = null;

		Token set1150 = null;

		Object set1150_tree = null;

		try {
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:831:16: ( MAKE_SET |
			// LOAD_FILE | IF | IFNULL | AES_ENCRYPT | AES_DECRYPT | DECODE |
			// ENCODE | DES_DECRYPT | DES_ENCRYPT | ENCRYPT | MD5 | OLD_PASSWORD
			// | PASSWORD | BENCHMARK | CHARSET | COERCIBILITY | COLLATION |
			// CONNECTION_ID | CURRENT_USER | DATABASE | SCHEMA | USER |
			// SESSION_USER | SYSTEM_USER | VERSION_SYM | FOUND_ROWS |
			// LAST_INSERT_ID | DEFAULT | GET_LOCK | RELEASE_LOCK | IS_FREE_LOCK
			// | IS_USED_LOCK | MASTER_POS_WAIT | INET_ATON | INET_NTOA |
			// NAME_CONST | SLEEP | UUID | VALUES )
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:
			{
				root_0 = (Object) adaptor.nil();

				set1150 = (Token) input.LT(1);
				if (input.LA(1) == VALUES || input.LA(1) == DEFAULT
						|| input.LA(1) == IF || input.LA(1) == PASSWORD
						|| input.LA(1) == CURRENT_USER
						|| input.LA(1) == LOAD_FILE || input.LA(1) == MAKE_SET
						|| (input.LA(1) >= IFNULL && input.LA(1) <= UUID)) {
					input.consume();
					if (state.backtracking == 0)
						adaptor.addChild(root_0,
								(Object) adaptor.create(set1150));
					state.errorRecovery = false;
					state.failed = false;
				} else {
					if (state.backtracking > 0) {
						state.failed = true;
						return retval;
					}
					MismatchedSetException mse = new MismatchedSetException(
							null, input);
					throw mse;
				}

			}

			retval.stop = input.LT(-1);

			if (state.backtracking == 0) {

				retval.tree = (Object) adaptor.rulePostProcessing(root_0);
				adaptor.setTokenBoundaries(retval.tree, retval.start,
						retval.stop);
			}
		} catch (RecognitionException re) {
			reportError(re);
			recover(input, re);
			retval.tree = (Object) adaptor.errorNode(input, retval.start,
					input.LT(-1), re);

		} finally {
		}
		return retval;
	}

	// $ANTLR end "other_functions"

	public static class group_functions_return extends ParserRuleReturnScope {
		Object tree;

		public Object getTree() {
			return tree;
		}
	};

	// $ANTLR start "group_functions"
	// C:\\Users\\grand\\Desktop\\another\\MySQL.g:851:1: group_functions : (
	// AVG | COUNT | MAX_SYM | MIN_SYM | SUM | BIT_AND | BIT_OR | BIT_XOR |
	// GROUP_CONCAT | STD | STDDEV | STDDEV_POP | STDDEV_SAMP | VAR_POP |
	// VAR_SAMP | VARIANCE );
	public final MySQLParser.group_functions_return group_functions()
			throws RecognitionException {
		MySQLParser.group_functions_return retval = new MySQLParser.group_functions_return();
		retval.start = input.LT(1);

		Object root_0 = null;

		Token set1151 = null;

		Object set1151_tree = null;

		try {
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:851:16: ( AVG | COUNT
			// | MAX_SYM | MIN_SYM | SUM | BIT_AND | BIT_OR | BIT_XOR |
			// GROUP_CONCAT | STD | STDDEV | STDDEV_POP | STDDEV_SAMP | VAR_POP
			// | VAR_SAMP | VARIANCE )
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:
			{
				root_0 = (Object) adaptor.nil();

				set1151 = (Token) input.LT(1);
				if ((input.LA(1) >= AVG && input.LA(1) <= VARIANCE)) {
					input.consume();
					if (state.backtracking == 0)
						adaptor.addChild(root_0,
								(Object) adaptor.create(set1151));
					state.errorRecovery = false;
					state.failed = false;
				} else {
					if (state.backtracking > 0) {
						state.failed = true;
						return retval;
					}
					MismatchedSetException mse = new MismatchedSetException(
							null, input);
					throw mse;
				}

			}

			retval.stop = input.LT(-1);

			if (state.backtracking == 0) {

				retval.tree = (Object) adaptor.rulePostProcessing(root_0);
				adaptor.setTokenBoundaries(retval.tree, retval.start,
						retval.stop);
			}
		} catch (RecognitionException re) {
			reportError(re);
			recover(input, re);
			retval.tree = (Object) adaptor.errorNode(input, retval.start,
					input.LT(-1), re);

		} finally {
		}
		return retval;
	}

	// $ANTLR end "group_functions"

	public static class schema_name_return extends ParserRuleReturnScope {
		Object tree;

		public Object getTree() {
			return tree;
		}
	};

	// $ANTLR start "schema_name"
	// C:\\Users\\grand\\Desktop\\another\\MySQL.g:865:1: schema_name : ID ;
	public final MySQLParser.schema_name_return schema_name()
			throws RecognitionException {
		MySQLParser.schema_name_return retval = new MySQLParser.schema_name_return();
		retval.start = input.LT(1);

		Object root_0 = null;

		Token ID1152 = null;

		Object ID1152_tree = null;

		try {
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:865:13: ( ID )
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:865:15: ID
			{
				root_0 = (Object) adaptor.nil();

				ID1152 = (Token) match(input, ID, FOLLOW_ID_in_schema_name7647);
				if (state.failed)
					return retval;
				if (state.backtracking == 0) {
					ID1152_tree = (Object) adaptor.create(ID1152);
					adaptor.addChild(root_0, ID1152_tree);
				}

			}

			retval.stop = input.LT(-1);

			if (state.backtracking == 0) {

				retval.tree = (Object) adaptor.rulePostProcessing(root_0);
				adaptor.setTokenBoundaries(retval.tree, retval.start,
						retval.stop);
			}
		} catch (RecognitionException re) {
			reportError(re);
			recover(input, re);
			retval.tree = (Object) adaptor.errorNode(input, retval.start,
					input.LT(-1), re);

		} finally {
		}
		return retval;
	}

	// $ANTLR end "schema_name"

	public static class table_name_return extends ParserRuleReturnScope {
		Object tree;

		public Object getTree() {
			return tree;
		}
	};

	// $ANTLR start "table_name"
	// C:\\Users\\grand\\Desktop\\another\\MySQL.g:866:1: table_name : ID ;
	public final MySQLParser.table_name_return table_name()
			throws RecognitionException {
		MySQLParser.table_name_return retval = new MySQLParser.table_name_return();
		retval.start = input.LT(1);

		Object root_0 = null;

		Token ID1153 = null;

		Object ID1153_tree = null;

		try {
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:866:12: ( ID )
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:866:14: ID
			{
				root_0 = (Object) adaptor.nil();

				ID1153 = (Token) match(input, ID, FOLLOW_ID_in_table_name7654);
				if (state.failed)
					return retval;
				if (state.backtracking == 0) {
					ID1153_tree = (Object) adaptor.create(ID1153);
					adaptor.addChild(root_0, ID1153_tree);
				}

			}

			retval.stop = input.LT(-1);

			if (state.backtracking == 0) {

				retval.tree = (Object) adaptor.rulePostProcessing(root_0);
				adaptor.setTokenBoundaries(retval.tree, retval.start,
						retval.stop);
			}
		} catch (RecognitionException re) {
			reportError(re);
			recover(input, re);
			retval.tree = (Object) adaptor.errorNode(input, retval.start,
					input.LT(-1), re);

		} finally {
		}
		return retval;
	}

	// $ANTLR end "table_name"

	public static class engine_name_return extends ParserRuleReturnScope {
		Object tree;

		public Object getTree() {
			return tree;
		}
	};

	// $ANTLR start "engine_name"
	// C:\\Users\\grand\\Desktop\\another\\MySQL.g:867:1: engine_name : ID ;
	public final MySQLParser.engine_name_return engine_name()
			throws RecognitionException {
		MySQLParser.engine_name_return retval = new MySQLParser.engine_name_return();
		retval.start = input.LT(1);

		Object root_0 = null;

		Token ID1154 = null;

		Object ID1154_tree = null;

		try {
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:867:13: ( ID )
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:867:15: ID
			{
				root_0 = (Object) adaptor.nil();

				ID1154 = (Token) match(input, ID, FOLLOW_ID_in_engine_name7661);
				if (state.failed)
					return retval;
				if (state.backtracking == 0) {
					ID1154_tree = (Object) adaptor.create(ID1154);
					adaptor.addChild(root_0, ID1154_tree);
				}

			}

			retval.stop = input.LT(-1);

			if (state.backtracking == 0) {

				retval.tree = (Object) adaptor.rulePostProcessing(root_0);
				adaptor.setTokenBoundaries(retval.tree, retval.start,
						retval.stop);
			}
		} catch (RecognitionException re) {
			reportError(re);
			recover(input, re);
			retval.tree = (Object) adaptor.errorNode(input, retval.start,
					input.LT(-1), re);

		} finally {
		}
		return retval;
	}

	// $ANTLR end "engine_name"

	public static class column_name_return extends ParserRuleReturnScope {
		Object tree;

		public Object getTree() {
			return tree;
		}
	};

	// $ANTLR start "column_name"
	// C:\\Users\\grand\\Desktop\\another\\MySQL.g:868:1: column_name : ID ;
	public final MySQLParser.column_name_return column_name()
			throws RecognitionException {
		MySQLParser.column_name_return retval = new MySQLParser.column_name_return();
		retval.start = input.LT(1);

		Object root_0 = null;

		Token ID1155 = null;

		Object ID1155_tree = null;

		try {
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:868:13: ( ID )
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:868:15: ID
			{
				root_0 = (Object) adaptor.nil();

				ID1155 = (Token) match(input, ID, FOLLOW_ID_in_column_name7668);
				if (state.failed)
					return retval;
				if (state.backtracking == 0) {
					ID1155_tree = (Object) adaptor.create(ID1155);
					adaptor.addChild(root_0, ID1155_tree);
				}

			}

			retval.stop = input.LT(-1);

			if (state.backtracking == 0) {

				retval.tree = (Object) adaptor.rulePostProcessing(root_0);
				adaptor.setTokenBoundaries(retval.tree, retval.start,
						retval.stop);
			}
		} catch (RecognitionException re) {
			reportError(re);
			recover(input, re);
			retval.tree = (Object) adaptor.errorNode(input, retval.start,
					input.LT(-1), re);

		} finally {
		}
		return retval;
	}

	// $ANTLR end "column_name"

	public static class view_name_return extends ParserRuleReturnScope {
		Object tree;

		public Object getTree() {
			return tree;
		}
	};

	// $ANTLR start "view_name"
	// C:\\Users\\grand\\Desktop\\another\\MySQL.g:869:1: view_name : ID ;
	public final MySQLParser.view_name_return view_name()
			throws RecognitionException {
		MySQLParser.view_name_return retval = new MySQLParser.view_name_return();
		retval.start = input.LT(1);

		Object root_0 = null;

		Token ID1156 = null;

		Object ID1156_tree = null;

		try {
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:869:11: ( ID )
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:869:13: ID
			{
				root_0 = (Object) adaptor.nil();

				ID1156 = (Token) match(input, ID, FOLLOW_ID_in_view_name7675);
				if (state.failed)
					return retval;
				if (state.backtracking == 0) {
					ID1156_tree = (Object) adaptor.create(ID1156);
					adaptor.addChild(root_0, ID1156_tree);
				}

			}

			retval.stop = input.LT(-1);

			if (state.backtracking == 0) {

				retval.tree = (Object) adaptor.rulePostProcessing(root_0);
				adaptor.setTokenBoundaries(retval.tree, retval.start,
						retval.stop);
			}
		} catch (RecognitionException re) {
			reportError(re);
			recover(input, re);
			retval.tree = (Object) adaptor.errorNode(input, retval.start,
					input.LT(-1), re);

		} finally {
		}
		return retval;
	}

	// $ANTLR end "view_name"

	public static class parser_name_return extends ParserRuleReturnScope {
		Object tree;

		public Object getTree() {
			return tree;
		}
	};

	// $ANTLR start "parser_name"
	// C:\\Users\\grand\\Desktop\\another\\MySQL.g:870:1: parser_name : ID ;
	public final MySQLParser.parser_name_return parser_name()
			throws RecognitionException {
		MySQLParser.parser_name_return retval = new MySQLParser.parser_name_return();
		retval.start = input.LT(1);

		Object root_0 = null;

		Token ID1157 = null;

		Object ID1157_tree = null;

		try {
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:870:13: ( ID )
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:870:15: ID
			{
				root_0 = (Object) adaptor.nil();

				ID1157 = (Token) match(input, ID, FOLLOW_ID_in_parser_name7682);
				if (state.failed)
					return retval;
				if (state.backtracking == 0) {
					ID1157_tree = (Object) adaptor.create(ID1157);
					adaptor.addChild(root_0, ID1157_tree);
				}

			}

			retval.stop = input.LT(-1);

			if (state.backtracking == 0) {

				retval.tree = (Object) adaptor.rulePostProcessing(root_0);
				adaptor.setTokenBoundaries(retval.tree, retval.start,
						retval.stop);
			}
		} catch (RecognitionException re) {
			reportError(re);
			recover(input, re);
			retval.tree = (Object) adaptor.errorNode(input, retval.start,
					input.LT(-1), re);

		} finally {
		}
		return retval;
	}

	// $ANTLR end "parser_name"

	public static class index_name_return extends ParserRuleReturnScope {
		Object tree;

		public Object getTree() {
			return tree;
		}
	};

	// $ANTLR start "index_name"
	// C:\\Users\\grand\\Desktop\\another\\MySQL.g:871:1: index_name : ID ;
	public final MySQLParser.index_name_return index_name()
			throws RecognitionException {
		MySQLParser.index_name_return retval = new MySQLParser.index_name_return();
		retval.start = input.LT(1);

		Object root_0 = null;

		Token ID1158 = null;

		Object ID1158_tree = null;

		try {
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:871:12: ( ID )
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:871:14: ID
			{
				root_0 = (Object) adaptor.nil();

				ID1158 = (Token) match(input, ID, FOLLOW_ID_in_index_name7689);
				if (state.failed)
					return retval;
				if (state.backtracking == 0) {
					ID1158_tree = (Object) adaptor.create(ID1158);
					adaptor.addChild(root_0, ID1158_tree);
				}

			}

			retval.stop = input.LT(-1);

			if (state.backtracking == 0) {

				retval.tree = (Object) adaptor.rulePostProcessing(root_0);
				adaptor.setTokenBoundaries(retval.tree, retval.start,
						retval.stop);
			}
		} catch (RecognitionException re) {
			reportError(re);
			recover(input, re);
			retval.tree = (Object) adaptor.errorNode(input, retval.start,
					input.LT(-1), re);

		} finally {
		}
		return retval;
	}

	// $ANTLR end "index_name"

	public static class partition_name_return extends ParserRuleReturnScope {
		Object tree;

		public Object getTree() {
			return tree;
		}
	};

	// $ANTLR start "partition_name"
	// C:\\Users\\grand\\Desktop\\another\\MySQL.g:872:1: partition_name : ID ;
	public final MySQLParser.partition_name_return partition_name()
			throws RecognitionException {
		MySQLParser.partition_name_return retval = new MySQLParser.partition_name_return();
		retval.start = input.LT(1);

		Object root_0 = null;

		Token ID1159 = null;

		Object ID1159_tree = null;

		try {
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:872:16: ( ID )
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:872:18: ID
			{
				root_0 = (Object) adaptor.nil();

				ID1159 = (Token) match(input, ID,
						FOLLOW_ID_in_partition_name7696);
				if (state.failed)
					return retval;
				if (state.backtracking == 0) {
					ID1159_tree = (Object) adaptor.create(ID1159);
					adaptor.addChild(root_0, ID1159_tree);
				}

			}

			retval.stop = input.LT(-1);

			if (state.backtracking == 0) {

				retval.tree = (Object) adaptor.rulePostProcessing(root_0);
				adaptor.setTokenBoundaries(retval.tree, retval.start,
						retval.stop);
			}
		} catch (RecognitionException re) {
			reportError(re);
			recover(input, re);
			retval.tree = (Object) adaptor.errorNode(input, retval.start,
					input.LT(-1), re);

		} finally {
		}
		return retval;
	}

	// $ANTLR end "partition_name"

	public static class partition_logical_name_return extends
			ParserRuleReturnScope {
		Object tree;

		public Object getTree() {
			return tree;
		}
	};

	// $ANTLR start "partition_logical_name"
	// C:\\Users\\grand\\Desktop\\another\\MySQL.g:873:1: partition_logical_name
	// : ID ;
	public final MySQLParser.partition_logical_name_return partition_logical_name()
			throws RecognitionException {
		MySQLParser.partition_logical_name_return retval = new MySQLParser.partition_logical_name_return();
		retval.start = input.LT(1);

		Object root_0 = null;

		Token ID1160 = null;

		Object ID1160_tree = null;

		try {
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:874:2: ( ID )
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:874:4: ID
			{
				root_0 = (Object) adaptor.nil();

				ID1160 = (Token) match(input, ID,
						FOLLOW_ID_in_partition_logical_name7705);
				if (state.failed)
					return retval;
				if (state.backtracking == 0) {
					ID1160_tree = (Object) adaptor.create(ID1160);
					adaptor.addChild(root_0, ID1160_tree);
				}

			}

			retval.stop = input.LT(-1);

			if (state.backtracking == 0) {

				retval.tree = (Object) adaptor.rulePostProcessing(root_0);
				adaptor.setTokenBoundaries(retval.tree, retval.start,
						retval.stop);
			}
		} catch (RecognitionException re) {
			reportError(re);
			recover(input, re);
			retval.tree = (Object) adaptor.errorNode(input, retval.start,
					input.LT(-1), re);

		} finally {
		}
		return retval;
	}

	// $ANTLR end "partition_logical_name"

	public static class constraint_symbol_name_return extends
			ParserRuleReturnScope {
		Object tree;

		public Object getTree() {
			return tree;
		}
	};

	// $ANTLR start "constraint_symbol_name"
	// C:\\Users\\grand\\Desktop\\another\\MySQL.g:875:1: constraint_symbol_name
	// : ID ;
	public final MySQLParser.constraint_symbol_name_return constraint_symbol_name()
			throws RecognitionException {
		MySQLParser.constraint_symbol_name_return retval = new MySQLParser.constraint_symbol_name_return();
		retval.start = input.LT(1);

		Object root_0 = null;

		Token ID1161 = null;

		Object ID1161_tree = null;

		try {
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:875:24: ( ID )
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:875:26: ID
			{
				root_0 = (Object) adaptor.nil();

				ID1161 = (Token) match(input, ID,
						FOLLOW_ID_in_constraint_symbol_name7712);
				if (state.failed)
					return retval;
				if (state.backtracking == 0) {
					ID1161_tree = (Object) adaptor.create(ID1161);
					adaptor.addChild(root_0, ID1161_tree);
				}

			}

			retval.stop = input.LT(-1);

			if (state.backtracking == 0) {

				retval.tree = (Object) adaptor.rulePostProcessing(root_0);
				adaptor.setTokenBoundaries(retval.tree, retval.start,
						retval.stop);
			}
		} catch (RecognitionException re) {
			reportError(re);
			recover(input, re);
			retval.tree = (Object) adaptor.errorNode(input, retval.start,
					input.LT(-1), re);

		} finally {
		}
		return retval;
	}

	// $ANTLR end "constraint_symbol_name"

	public static class foreign_key_symbol_name_return extends
			ParserRuleReturnScope {
		Object tree;

		public Object getTree() {
			return tree;
		}
	};

	// $ANTLR start "foreign_key_symbol_name"
	// C:\\Users\\grand\\Desktop\\another\\MySQL.g:876:1:
	// foreign_key_symbol_name : ID ;
	public final MySQLParser.foreign_key_symbol_name_return foreign_key_symbol_name()
			throws RecognitionException {
		MySQLParser.foreign_key_symbol_name_return retval = new MySQLParser.foreign_key_symbol_name_return();
		retval.start = input.LT(1);

		Object root_0 = null;

		Token ID1162 = null;

		Object ID1162_tree = null;

		try {
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:876:25: ( ID )
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:876:27: ID
			{
				root_0 = (Object) adaptor.nil();

				ID1162 = (Token) match(input, ID,
						FOLLOW_ID_in_foreign_key_symbol_name7719);
				if (state.failed)
					return retval;
				if (state.backtracking == 0) {
					ID1162_tree = (Object) adaptor.create(ID1162);
					adaptor.addChild(root_0, ID1162_tree);
				}

			}

			retval.stop = input.LT(-1);

			if (state.backtracking == 0) {

				retval.tree = (Object) adaptor.rulePostProcessing(root_0);
				adaptor.setTokenBoundaries(retval.tree, retval.start,
						retval.stop);
			}
		} catch (RecognitionException re) {
			reportError(re);
			recover(input, re);
			retval.tree = (Object) adaptor.errorNode(input, retval.start,
					input.LT(-1), re);

		} finally {
		}
		return retval;
	}

	// $ANTLR end "foreign_key_symbol_name"

	public static class collation_name_return extends ParserRuleReturnScope {
		Object tree;

		public Object getTree() {
			return tree;
		}
	};

	// $ANTLR start "collation_name"
	// C:\\Users\\grand\\Desktop\\another\\MySQL.g:877:1: collation_name : ID ;
	public final MySQLParser.collation_name_return collation_name()
			throws RecognitionException {
		MySQLParser.collation_name_return retval = new MySQLParser.collation_name_return();
		retval.start = input.LT(1);

		Object root_0 = null;

		Token ID1163 = null;

		Object ID1163_tree = null;

		try {
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:877:17: ( ID )
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:877:19: ID
			{
				root_0 = (Object) adaptor.nil();

				ID1163 = (Token) match(input, ID,
						FOLLOW_ID_in_collation_name7727);
				if (state.failed)
					return retval;
				if (state.backtracking == 0) {
					ID1163_tree = (Object) adaptor.create(ID1163);
					adaptor.addChild(root_0, ID1163_tree);
				}

			}

			retval.stop = input.LT(-1);

			if (state.backtracking == 0) {

				retval.tree = (Object) adaptor.rulePostProcessing(root_0);
				adaptor.setTokenBoundaries(retval.tree, retval.start,
						retval.stop);
			}
		} catch (RecognitionException re) {
			reportError(re);
			recover(input, re);
			retval.tree = (Object) adaptor.errorNode(input, retval.start,
					input.LT(-1), re);

		} finally {
		}
		return retval;
	}

	// $ANTLR end "collation_name"

	public static class event_name_return extends ParserRuleReturnScope {
		Object tree;

		public Object getTree() {
			return tree;
		}
	};

	// $ANTLR start "event_name"
	// C:\\Users\\grand\\Desktop\\another\\MySQL.g:878:1: event_name : ID ;
	public final MySQLParser.event_name_return event_name()
			throws RecognitionException {
		MySQLParser.event_name_return retval = new MySQLParser.event_name_return();
		retval.start = input.LT(1);

		Object root_0 = null;

		Token ID1164 = null;

		Object ID1164_tree = null;

		try {
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:878:13: ( ID )
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:878:15: ID
			{
				root_0 = (Object) adaptor.nil();

				ID1164 = (Token) match(input, ID, FOLLOW_ID_in_event_name7735);
				if (state.failed)
					return retval;
				if (state.backtracking == 0) {
					ID1164_tree = (Object) adaptor.create(ID1164);
					adaptor.addChild(root_0, ID1164_tree);
				}

			}

			retval.stop = input.LT(-1);

			if (state.backtracking == 0) {

				retval.tree = (Object) adaptor.rulePostProcessing(root_0);
				adaptor.setTokenBoundaries(retval.tree, retval.start,
						retval.stop);
			}
		} catch (RecognitionException re) {
			reportError(re);
			recover(input, re);
			retval.tree = (Object) adaptor.errorNode(input, retval.start,
					input.LT(-1), re);

		} finally {
		}
		return retval;
	}

	// $ANTLR end "event_name"

	public static class user_name_return extends ParserRuleReturnScope {
		Object tree;

		public Object getTree() {
			return tree;
		}
	};

	// $ANTLR start "user_name"
	// C:\\Users\\grand\\Desktop\\another\\MySQL.g:879:1: user_name : ID ;
	public final MySQLParser.user_name_return user_name()
			throws RecognitionException {
		MySQLParser.user_name_return retval = new MySQLParser.user_name_return();
		retval.start = input.LT(1);

		Object root_0 = null;

		Token ID1165 = null;

		Object ID1165_tree = null;

		try {
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:879:12: ( ID )
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:879:14: ID
			{
				root_0 = (Object) adaptor.nil();

				ID1165 = (Token) match(input, ID, FOLLOW_ID_in_user_name7743);
				if (state.failed)
					return retval;
				if (state.backtracking == 0) {
					ID1165_tree = (Object) adaptor.create(ID1165);
					adaptor.addChild(root_0, ID1165_tree);
				}

			}

			retval.stop = input.LT(-1);

			if (state.backtracking == 0) {

				retval.tree = (Object) adaptor.rulePostProcessing(root_0);
				adaptor.setTokenBoundaries(retval.tree, retval.start,
						retval.stop);
			}
		} catch (RecognitionException re) {
			reportError(re);
			recover(input, re);
			retval.tree = (Object) adaptor.errorNode(input, retval.start,
					input.LT(-1), re);

		} finally {
		}
		return retval;
	}

	// $ANTLR end "user_name"

	public static class function_name_return extends ParserRuleReturnScope {
		Object tree;

		public Object getTree() {
			return tree;
		}
	};

	// $ANTLR start "function_name"
	// C:\\Users\\grand\\Desktop\\another\\MySQL.g:880:1: function_name : ID ;
	public final MySQLParser.function_name_return function_name()
			throws RecognitionException {
		MySQLParser.function_name_return retval = new MySQLParser.function_name_return();
		retval.start = input.LT(1);

		Object root_0 = null;

		Token ID1166 = null;

		Object ID1166_tree = null;

		try {
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:880:16: ( ID )
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:880:18: ID
			{
				root_0 = (Object) adaptor.nil();

				ID1166 = (Token) match(input, ID,
						FOLLOW_ID_in_function_name7751);
				if (state.failed)
					return retval;
				if (state.backtracking == 0) {
					ID1166_tree = (Object) adaptor.create(ID1166);
					adaptor.addChild(root_0, ID1166_tree);
				}

			}

			retval.stop = input.LT(-1);

			if (state.backtracking == 0) {

				retval.tree = (Object) adaptor.rulePostProcessing(root_0);
				adaptor.setTokenBoundaries(retval.tree, retval.start,
						retval.stop);
			}
		} catch (RecognitionException re) {
			reportError(re);
			recover(input, re);
			retval.tree = (Object) adaptor.errorNode(input, retval.start,
					input.LT(-1), re);

		} finally {
		}
		return retval;
	}

	// $ANTLR end "function_name"

	public static class procedure_name_return extends ParserRuleReturnScope {
		Object tree;

		public Object getTree() {
			return tree;
		}
	};

	// $ANTLR start "procedure_name"
	// C:\\Users\\grand\\Desktop\\another\\MySQL.g:881:1: procedure_name : ID ;
	public final MySQLParser.procedure_name_return procedure_name()
			throws RecognitionException {
		MySQLParser.procedure_name_return retval = new MySQLParser.procedure_name_return();
		retval.start = input.LT(1);

		Object root_0 = null;

		Token ID1167 = null;

		Object ID1167_tree = null;

		try {
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:881:17: ( ID )
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:881:19: ID
			{
				root_0 = (Object) adaptor.nil();

				ID1167 = (Token) match(input, ID,
						FOLLOW_ID_in_procedure_name7759);
				if (state.failed)
					return retval;
				if (state.backtracking == 0) {
					ID1167_tree = (Object) adaptor.create(ID1167);
					adaptor.addChild(root_0, ID1167_tree);
				}

			}

			retval.stop = input.LT(-1);

			if (state.backtracking == 0) {

				retval.tree = (Object) adaptor.rulePostProcessing(root_0);
				adaptor.setTokenBoundaries(retval.tree, retval.start,
						retval.stop);
			}
		} catch (RecognitionException re) {
			reportError(re);
			recover(input, re);
			retval.tree = (Object) adaptor.errorNode(input, retval.start,
					input.LT(-1), re);

		} finally {
		}
		return retval;
	}

	// $ANTLR end "procedure_name"

	public static class server_name_return extends ParserRuleReturnScope {
		Object tree;

		public Object getTree() {
			return tree;
		}
	};

	// $ANTLR start "server_name"
	// C:\\Users\\grand\\Desktop\\another\\MySQL.g:882:1: server_name : ID ;
	public final MySQLParser.server_name_return server_name()
			throws RecognitionException {
		MySQLParser.server_name_return retval = new MySQLParser.server_name_return();
		retval.start = input.LT(1);

		Object root_0 = null;

		Token ID1168 = null;

		Object ID1168_tree = null;

		try {
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:882:14: ( ID )
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:882:16: ID
			{
				root_0 = (Object) adaptor.nil();

				ID1168 = (Token) match(input, ID, FOLLOW_ID_in_server_name7767);
				if (state.failed)
					return retval;
				if (state.backtracking == 0) {
					ID1168_tree = (Object) adaptor.create(ID1168);
					adaptor.addChild(root_0, ID1168_tree);
				}

			}

			retval.stop = input.LT(-1);

			if (state.backtracking == 0) {

				retval.tree = (Object) adaptor.rulePostProcessing(root_0);
				adaptor.setTokenBoundaries(retval.tree, retval.start,
						retval.stop);
			}
		} catch (RecognitionException re) {
			reportError(re);
			recover(input, re);
			retval.tree = (Object) adaptor.errorNode(input, retval.start,
					input.LT(-1), re);

		} finally {
		}
		return retval;
	}

	// $ANTLR end "server_name"

	public static class wrapper_name_return extends ParserRuleReturnScope {
		Object tree;

		public Object getTree() {
			return tree;
		}
	};

	// $ANTLR start "wrapper_name"
	// C:\\Users\\grand\\Desktop\\another\\MySQL.g:883:1: wrapper_name : ID ;
	public final MySQLParser.wrapper_name_return wrapper_name()
			throws RecognitionException {
		MySQLParser.wrapper_name_return retval = new MySQLParser.wrapper_name_return();
		retval.start = input.LT(1);

		Object root_0 = null;

		Token ID1169 = null;

		Object ID1169_tree = null;

		try {
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:883:15: ( ID )
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:883:17: ID
			{
				root_0 = (Object) adaptor.nil();

				ID1169 = (Token) match(input, ID, FOLLOW_ID_in_wrapper_name7775);
				if (state.failed)
					return retval;
				if (state.backtracking == 0) {
					ID1169_tree = (Object) adaptor.create(ID1169);
					adaptor.addChild(root_0, ID1169_tree);
				}

			}

			retval.stop = input.LT(-1);

			if (state.backtracking == 0) {

				retval.tree = (Object) adaptor.rulePostProcessing(root_0);
				adaptor.setTokenBoundaries(retval.tree, retval.start,
						retval.stop);
			}
		} catch (RecognitionException re) {
			reportError(re);
			recover(input, re);
			retval.tree = (Object) adaptor.errorNode(input, retval.start,
					input.LT(-1), re);

		} finally {
		}
		return retval;
	}

	// $ANTLR end "wrapper_name"

	public static class alias_return extends ParserRuleReturnScope {
		Object tree;

		public Object getTree() {
			return tree;
		}
	};

	// $ANTLR start "alias"
	// C:\\Users\\grand\\Desktop\\another\\MySQL.g:884:1: alias : ( AS_SYM )? ID
	// -> ID ;
	public final MySQLParser.alias_return alias() throws RecognitionException {
		MySQLParser.alias_return retval = new MySQLParser.alias_return();
		retval.start = input.LT(1);

		Object root_0 = null;

		Token AS_SYM1170 = null;
		Token ID1171 = null;

		Object AS_SYM1170_tree = null;
		Object ID1171_tree = null;
		RewriteRuleTokenStream stream_AS_SYM = new RewriteRuleTokenStream(
				adaptor, "token AS_SYM");
		RewriteRuleTokenStream stream_ID = new RewriteRuleTokenStream(adaptor,
				"token ID");

		try {
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:884:9: ( ( AS_SYM )?
			// ID -> ID )
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:884:11: ( AS_SYM )?
			// ID
			{
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:884:11: ( AS_SYM
				// )?
				int alt418 = 2;
				int LA418_0 = input.LA(1);

				if ((LA418_0 == AS_SYM)) {
					alt418 = 1;
				}
				switch (alt418) {
				case 1:
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:884:13: AS_SYM
				{
					AS_SYM1170 = (Token) match(input, AS_SYM,
							FOLLOW_AS_SYM_in_alias7786);
					if (state.failed)
						return retval;
					if (state.backtracking == 0)
						stream_AS_SYM.add(AS_SYM1170);

				}
					break;

				}

				ID1171 = (Token) match(input, ID, FOLLOW_ID_in_alias7791);
				if (state.failed)
					return retval;
				if (state.backtracking == 0)
					stream_ID.add(ID1171);

				// AST REWRITE
				// elements: ID
				// token labels:
				// rule labels: retval
				// token list labels:
				// rule list labels:
				// wildcard labels:
				if (state.backtracking == 0) {
					retval.tree = root_0;
					RewriteRuleSubtreeStream stream_retval = new RewriteRuleSubtreeStream(
							adaptor, "rule retval",
							retval != null ? retval.tree : null);

					root_0 = (Object) adaptor.nil();
					// 884:26: -> ID
					{
						adaptor.addChild(root_0, stream_ID.nextNode());

					}

					retval.tree = root_0;
				}
			}

			retval.stop = input.LT(-1);

			if (state.backtracking == 0) {

				retval.tree = (Object) adaptor.rulePostProcessing(root_0);
				adaptor.setTokenBoundaries(retval.tree, retval.start,
						retval.stop);
			}
		} catch (RecognitionException re) {
			reportError(re);
			recover(input, re);
			retval.tree = (Object) adaptor.errorNode(input, retval.start,
					input.LT(-1), re);

		} finally {
		}
		return retval;
	}

	// $ANTLR end "alias"

	public static class expression_return extends ParserRuleReturnScope {
		Object tree;

		public Object getTree() {
			return tree;
		}
	};

	// $ANTLR start "expression"
	// C:\\Users\\grand\\Desktop\\another\\MySQL.g:892:1: expression :
	// exp_factor1 ( OR_SYM exp_factor1 )* ;
	public final MySQLParser.expression_return expression()
			throws RecognitionException {
		MySQLParser.expression_return retval = new MySQLParser.expression_return();
		retval.start = input.LT(1);

		Object root_0 = null;

		Token OR_SYM1173 = null;
		MySQLParser.exp_factor1_return exp_factor11172 = null;

		MySQLParser.exp_factor1_return exp_factor11174 = null;

		Object OR_SYM1173_tree = null;

		try {
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:892:11: ( exp_factor1
			// ( OR_SYM exp_factor1 )* )
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:892:13: exp_factor1 (
			// OR_SYM exp_factor1 )*
			{
				root_0 = (Object) adaptor.nil();

				pushFollow(FOLLOW_exp_factor1_in_expression7808);
				exp_factor11172 = exp_factor1();

				state._fsp--;
				if (state.failed)
					return retval;
				if (state.backtracking == 0)
					adaptor.addChild(root_0, exp_factor11172.getTree());
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:892:25: ( OR_SYM
				// exp_factor1 )*
				loop419: do {
					int alt419 = 2;
					int LA419_0 = input.LA(1);

					if ((LA419_0 == OR_SYM)) {
						int LA419_2 = input.LA(2);

						if ((synpred841_MySQL())) {
							alt419 = 1;
						}

					}

					switch (alt419) {
					case 1:
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:892:27:
					// OR_SYM exp_factor1
					{
						OR_SYM1173 = (Token) match(input, OR_SYM,
								FOLLOW_OR_SYM_in_expression7812);
						if (state.failed)
							return retval;
						if (state.backtracking == 0) {
							OR_SYM1173_tree = (Object) adaptor
									.create(OR_SYM1173);
							root_0 = (Object) adaptor.becomeRoot(
									OR_SYM1173_tree, root_0);
						}
						pushFollow(FOLLOW_exp_factor1_in_expression7815);
						exp_factor11174 = exp_factor1();

						state._fsp--;
						if (state.failed)
							return retval;
						if (state.backtracking == 0)
							adaptor.addChild(root_0, exp_factor11174.getTree());

					}
						break;

					default:
						break loop419;
					}
				} while (true);

			}

			retval.stop = input.LT(-1);

			if (state.backtracking == 0) {

				retval.tree = (Object) adaptor.rulePostProcessing(root_0);
				adaptor.setTokenBoundaries(retval.tree, retval.start,
						retval.stop);
			}
		} catch (RecognitionException re) {
			reportError(re);
			recover(input, re);
			retval.tree = (Object) adaptor.errorNode(input, retval.start,
					input.LT(-1), re);

		} finally {
		}
		return retval;
	}

	// $ANTLR end "expression"

	public static class exp_factor1_return extends ParserRuleReturnScope {
		Object tree;

		public Object getTree() {
			return tree;
		}
	};

	// $ANTLR start "exp_factor1"
	// C:\\Users\\grand\\Desktop\\another\\MySQL.g:893:1: exp_factor1 :
	// exp_factor2 ( XOR exp_factor2 )* ;
	public final MySQLParser.exp_factor1_return exp_factor1()
			throws RecognitionException {
		MySQLParser.exp_factor1_return retval = new MySQLParser.exp_factor1_return();
		retval.start = input.LT(1);

		Object root_0 = null;

		Token XOR1176 = null;
		MySQLParser.exp_factor2_return exp_factor21175 = null;

		MySQLParser.exp_factor2_return exp_factor21177 = null;

		Object XOR1176_tree = null;

		try {
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:893:12: ( exp_factor2
			// ( XOR exp_factor2 )* )
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:893:14: exp_factor2 (
			// XOR exp_factor2 )*
			{
				root_0 = (Object) adaptor.nil();

				pushFollow(FOLLOW_exp_factor2_in_exp_factor17825);
				exp_factor21175 = exp_factor2();

				state._fsp--;
				if (state.failed)
					return retval;
				if (state.backtracking == 0)
					adaptor.addChild(root_0, exp_factor21175.getTree());
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:893:26: ( XOR
				// exp_factor2 )*
				loop420: do {
					int alt420 = 2;
					int LA420_0 = input.LA(1);

					if ((LA420_0 == XOR)) {
						int LA420_2 = input.LA(2);

						if ((synpred842_MySQL())) {
							alt420 = 1;
						}

					}

					switch (alt420) {
					case 1:
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:893:28: XOR
					// exp_factor2
					{
						XOR1176 = (Token) match(input, XOR,
								FOLLOW_XOR_in_exp_factor17829);
						if (state.failed)
							return retval;
						if (state.backtracking == 0) {
							XOR1176_tree = (Object) adaptor.create(XOR1176);
							root_0 = (Object) adaptor.becomeRoot(XOR1176_tree,
									root_0);
						}
						pushFollow(FOLLOW_exp_factor2_in_exp_factor17832);
						exp_factor21177 = exp_factor2();

						state._fsp--;
						if (state.failed)
							return retval;
						if (state.backtracking == 0)
							adaptor.addChild(root_0, exp_factor21177.getTree());

					}
						break;

					default:
						break loop420;
					}
				} while (true);

			}

			retval.stop = input.LT(-1);

			if (state.backtracking == 0) {

				retval.tree = (Object) adaptor.rulePostProcessing(root_0);
				adaptor.setTokenBoundaries(retval.tree, retval.start,
						retval.stop);
			}
		} catch (RecognitionException re) {
			reportError(re);
			recover(input, re);
			retval.tree = (Object) adaptor.errorNode(input, retval.start,
					input.LT(-1), re);

		} finally {
		}
		return retval;
	}

	// $ANTLR end "exp_factor1"

	public static class exp_factor2_return extends ParserRuleReturnScope {
		Object tree;

		public Object getTree() {
			return tree;
		}
	};

	// $ANTLR start "exp_factor2"
	// C:\\Users\\grand\\Desktop\\another\\MySQL.g:894:1: exp_factor2 :
	// exp_factor3 ( AND_SYM exp_factor3 )* ;
	public final MySQLParser.exp_factor2_return exp_factor2()
			throws RecognitionException {
		MySQLParser.exp_factor2_return retval = new MySQLParser.exp_factor2_return();
		retval.start = input.LT(1);

		Object root_0 = null;

		Token AND_SYM1179 = null;
		MySQLParser.exp_factor3_return exp_factor31178 = null;

		MySQLParser.exp_factor3_return exp_factor31180 = null;

		Object AND_SYM1179_tree = null;

		try {
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:894:12: ( exp_factor3
			// ( AND_SYM exp_factor3 )* )
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:894:14: exp_factor3 (
			// AND_SYM exp_factor3 )*
			{
				root_0 = (Object) adaptor.nil();

				pushFollow(FOLLOW_exp_factor3_in_exp_factor27842);
				exp_factor31178 = exp_factor3();

				state._fsp--;
				if (state.failed)
					return retval;
				if (state.backtracking == 0)
					adaptor.addChild(root_0, exp_factor31178.getTree());
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:894:26: ( AND_SYM
				// exp_factor3 )*
				loop421: do {
					int alt421 = 2;
					int LA421_0 = input.LA(1);

					if ((LA421_0 == AND_SYM)) {
						int LA421_2 = input.LA(2);

						if ((synpred843_MySQL())) {
							alt421 = 1;
						}

					}

					switch (alt421) {
					case 1:
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:894:28:
					// AND_SYM exp_factor3
					{
						AND_SYM1179 = (Token) match(input, AND_SYM,
								FOLLOW_AND_SYM_in_exp_factor27846);
						if (state.failed)
							return retval;
						if (state.backtracking == 0) {
							AND_SYM1179_tree = (Object) adaptor
									.create(AND_SYM1179);
							root_0 = (Object) adaptor.becomeRoot(
									AND_SYM1179_tree, root_0);
						}
						pushFollow(FOLLOW_exp_factor3_in_exp_factor27849);
						exp_factor31180 = exp_factor3();

						state._fsp--;
						if (state.failed)
							return retval;
						if (state.backtracking == 0)
							adaptor.addChild(root_0, exp_factor31180.getTree());

					}
						break;

					default:
						break loop421;
					}
				} while (true);

			}

			retval.stop = input.LT(-1);

			if (state.backtracking == 0) {

				retval.tree = (Object) adaptor.rulePostProcessing(root_0);
				adaptor.setTokenBoundaries(retval.tree, retval.start,
						retval.stop);
			}
		} catch (RecognitionException re) {
			reportError(re);
			recover(input, re);
			retval.tree = (Object) adaptor.errorNode(input, retval.start,
					input.LT(-1), re);

		} finally {
		}
		return retval;
	}

	// $ANTLR end "exp_factor2"

	public static class exp_factor3_return extends ParserRuleReturnScope {
		Object tree;

		public Object getTree() {
			return tree;
		}
	};

	// $ANTLR start "exp_factor3"
	// C:\\Users\\grand\\Desktop\\another\\MySQL.g:895:1: exp_factor3 : (
	// NOT_SYM )? exp_factor4 ;
	public final MySQLParser.exp_factor3_return exp_factor3()
			throws RecognitionException {
		MySQLParser.exp_factor3_return retval = new MySQLParser.exp_factor3_return();
		retval.start = input.LT(1);

		Object root_0 = null;

		Token NOT_SYM1181 = null;
		MySQLParser.exp_factor4_return exp_factor41182 = null;

		Object NOT_SYM1181_tree = null;

		try {
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:895:12: ( ( NOT_SYM
			// )? exp_factor4 )
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:895:14: ( NOT_SYM )?
			// exp_factor4
			{
				root_0 = (Object) adaptor.nil();

				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:895:14: ( NOT_SYM
				// )?
				int alt422 = 2;
				int LA422_0 = input.LA(1);

				if ((LA422_0 == NOT_SYM)) {
					int LA422_1 = input.LA(2);

					if ((synpred844_MySQL())) {
						alt422 = 1;
					}
				}
				switch (alt422) {
				case 1:
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:895:15: NOT_SYM
				{
					NOT_SYM1181 = (Token) match(input, NOT_SYM,
							FOLLOW_NOT_SYM_in_exp_factor37860);
					if (state.failed)
						return retval;
					if (state.backtracking == 0) {
						NOT_SYM1181_tree = (Object) adaptor.create(NOT_SYM1181);
						root_0 = (Object) adaptor.becomeRoot(NOT_SYM1181_tree,
								root_0);
					}

				}
					break;

				}

				pushFollow(FOLLOW_exp_factor4_in_exp_factor37865);
				exp_factor41182 = exp_factor4();

				state._fsp--;
				if (state.failed)
					return retval;
				if (state.backtracking == 0)
					adaptor.addChild(root_0, exp_factor41182.getTree());

			}

			retval.stop = input.LT(-1);

			if (state.backtracking == 0) {

				retval.tree = (Object) adaptor.rulePostProcessing(root_0);
				adaptor.setTokenBoundaries(retval.tree, retval.start,
						retval.stop);
			}
		} catch (RecognitionException re) {
			reportError(re);
			recover(input, re);
			retval.tree = (Object) adaptor.errorNode(input, retval.start,
					input.LT(-1), re);

		} finally {
		}
		return retval;
	}

	// $ANTLR end "exp_factor3"

	public static class exp_factor4_return extends ParserRuleReturnScope {
		Object tree;

		public Object getTree() {
			return tree;
		}
	};

	// $ANTLR start "exp_factor4"
	// C:\\Users\\grand\\Desktop\\another\\MySQL.g:896:1: exp_factor4 :
	// bool_primary ( IS_SYM ( NOT_SYM )? ( boolean_literal | NULL_SYM ) )? ;
	public final MySQLParser.exp_factor4_return exp_factor4()
			throws RecognitionException {
		MySQLParser.exp_factor4_return retval = new MySQLParser.exp_factor4_return();
		retval.start = input.LT(1);

		Object root_0 = null;

		Token IS_SYM1184 = null;
		Token NOT_SYM1185 = null;
		Token NULL_SYM1187 = null;
		MySQLParser.bool_primary_return bool_primary1183 = null;

		MySQLParser.boolean_literal_return boolean_literal1186 = null;

		Object IS_SYM1184_tree = null;
		Object NOT_SYM1185_tree = null;
		Object NULL_SYM1187_tree = null;

		try {
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:896:12: (
			// bool_primary ( IS_SYM ( NOT_SYM )? ( boolean_literal | NULL_SYM )
			// )? )
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:896:14: bool_primary
			// ( IS_SYM ( NOT_SYM )? ( boolean_literal | NULL_SYM ) )?
			{
				root_0 = (Object) adaptor.nil();

				pushFollow(FOLLOW_bool_primary_in_exp_factor47872);
				bool_primary1183 = bool_primary();

				state._fsp--;
				if (state.failed)
					return retval;
				if (state.backtracking == 0)
					adaptor.addChild(root_0, bool_primary1183.getTree());
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:896:27: ( IS_SYM
				// ( NOT_SYM )? ( boolean_literal | NULL_SYM ) )?
				int alt425 = 2;
				int LA425_0 = input.LA(1);

				if ((LA425_0 == IS_SYM)) {
					int LA425_1 = input.LA(2);

					if ((synpred847_MySQL())) {
						alt425 = 1;
					}
				}
				switch (alt425) {
				case 1:
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:896:29: IS_SYM (
				// NOT_SYM )? ( boolean_literal | NULL_SYM )
				{
					IS_SYM1184 = (Token) match(input, IS_SYM,
							FOLLOW_IS_SYM_in_exp_factor47876);
					if (state.failed)
						return retval;
					if (state.backtracking == 0) {
						IS_SYM1184_tree = (Object) adaptor.create(IS_SYM1184);
						root_0 = (Object) adaptor.becomeRoot(IS_SYM1184_tree,
								root_0);
					}
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:896:37: (
					// NOT_SYM )?
					int alt423 = 2;
					int LA423_0 = input.LA(1);

					if ((LA423_0 == NOT_SYM)) {
						alt423 = 1;
					}
					switch (alt423) {
					case 1:
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:896:38:
					// NOT_SYM
					{
						NOT_SYM1185 = (Token) match(input, NOT_SYM,
								FOLLOW_NOT_SYM_in_exp_factor47880);
						if (state.failed)
							return retval;
						if (state.backtracking == 0) {
							NOT_SYM1185_tree = (Object) adaptor
									.create(NOT_SYM1185);
							root_0 = (Object) adaptor.becomeRoot(
									NOT_SYM1185_tree, root_0);
						}

					}
						break;

					}

					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:896:49: (
					// boolean_literal | NULL_SYM )
					int alt424 = 2;
					int LA424_0 = input.LA(1);

					if (((LA424_0 >= TRUE_SYM && LA424_0 <= FALSE_SYM))) {
						alt424 = 1;
					} else if ((LA424_0 == NULL_SYM)) {
						alt424 = 2;
					} else {
						if (state.backtracking > 0) {
							state.failed = true;
							return retval;
						}
						NoViableAltException nvae = new NoViableAltException(
								"", 424, 0, input);

						throw nvae;
					}
					switch (alt424) {
					case 1:
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:896:50:
					// boolean_literal
					{
						pushFollow(FOLLOW_boolean_literal_in_exp_factor47886);
						boolean_literal1186 = boolean_literal();

						state._fsp--;
						if (state.failed)
							return retval;
						if (state.backtracking == 0)
							adaptor.addChild(root_0,
									boolean_literal1186.getTree());

					}
						break;
					case 2:
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:896:66:
					// NULL_SYM
					{
						NULL_SYM1187 = (Token) match(input, NULL_SYM,
								FOLLOW_NULL_SYM_in_exp_factor47888);
						if (state.failed)
							return retval;
						if (state.backtracking == 0) {
							NULL_SYM1187_tree = (Object) adaptor
									.create(NULL_SYM1187);
							adaptor.addChild(root_0, NULL_SYM1187_tree);
						}

					}
						break;

					}

				}
					break;

				}

			}

			retval.stop = input.LT(-1);

			if (state.backtracking == 0) {

				retval.tree = (Object) adaptor.rulePostProcessing(root_0);
				adaptor.setTokenBoundaries(retval.tree, retval.start,
						retval.stop);
			}
		} catch (RecognitionException re) {
			reportError(re);
			recover(input, re);
			retval.tree = (Object) adaptor.errorNode(input, retval.start,
					input.LT(-1), re);

		} finally {
		}
		return retval;
	}

	// $ANTLR end "exp_factor4"

	public static class bool_primary_return extends ParserRuleReturnScope {
		Object tree;

		public Object getTree() {
			return tree;
		}
	};

	// $ANTLR start "bool_primary"
	// C:\\Users\\grand\\Desktop\\another\\MySQL.g:897:1: bool_primary : ( (
	// predicate relational_op predicate ) -> ^( relational_op predicate
	// predicate ) | ( predicate relational_op ( ALL | ANY )? subquery ) | ( (
	// NOT_SYM )? EXISTS subquery ) | predicate );
	public final MySQLParser.bool_primary_return bool_primary()
			throws RecognitionException {
		MySQLParser.bool_primary_return retval = new MySQLParser.bool_primary_return();
		retval.start = input.LT(1);

		Object root_0 = null;

		Token ALL1193 = null;
		Token ANY1194 = null;
		Token NOT_SYM1196 = null;
		Token EXISTS1197 = null;
		MySQLParser.predicate_return predicate1188 = null;

		MySQLParser.relational_op_return relational_op1189 = null;

		MySQLParser.predicate_return predicate1190 = null;

		MySQLParser.predicate_return predicate1191 = null;

		MySQLParser.relational_op_return relational_op1192 = null;

		MySQLParser.subquery_return subquery1195 = null;

		MySQLParser.subquery_return subquery1198 = null;

		MySQLParser.predicate_return predicate1199 = null;

		Object ALL1193_tree = null;
		Object ANY1194_tree = null;
		Object NOT_SYM1196_tree = null;
		Object EXISTS1197_tree = null;
		RewriteRuleSubtreeStream stream_predicate = new RewriteRuleSubtreeStream(
				adaptor, "rule predicate");
		RewriteRuleSubtreeStream stream_relational_op = new RewriteRuleSubtreeStream(
				adaptor, "rule relational_op");
		try {
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:897:13: ( ( predicate
			// relational_op predicate ) -> ^( relational_op predicate predicate
			// ) | ( predicate relational_op ( ALL | ANY )? subquery ) | ( (
			// NOT_SYM )? EXISTS subquery ) | predicate )
			int alt428 = 4;
			alt428 = dfa428.predict(input);
			switch (alt428) {
			case 1:
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:898:4: ( predicate
			// relational_op predicate )
			{
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:898:4: (
				// predicate relational_op predicate )
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:898:6: predicate
				// relational_op predicate
				{
					pushFollow(FOLLOW_predicate_in_bool_primary7904);
					predicate1188 = predicate();

					state._fsp--;
					if (state.failed)
						return retval;
					if (state.backtracking == 0)
						stream_predicate.add(predicate1188.getTree());
					pushFollow(FOLLOW_relational_op_in_bool_primary7906);
					relational_op1189 = relational_op();

					state._fsp--;
					if (state.failed)
						return retval;
					if (state.backtracking == 0)
						stream_relational_op.add(relational_op1189.getTree());
					pushFollow(FOLLOW_predicate_in_bool_primary7908);
					predicate1190 = predicate();

					state._fsp--;
					if (state.failed)
						return retval;
					if (state.backtracking == 0)
						stream_predicate.add(predicate1190.getTree());

				}

				// AST REWRITE
				// elements: predicate, predicate, relational_op
				// token labels:
				// rule labels: retval
				// token list labels:
				// rule list labels:
				// wildcard labels:
				if (state.backtracking == 0) {
					retval.tree = root_0;
					RewriteRuleSubtreeStream stream_retval = new RewriteRuleSubtreeStream(
							adaptor, "rule retval",
							retval != null ? retval.tree : null);

					root_0 = (Object) adaptor.nil();
					// 898:42: -> ^( relational_op predicate predicate )
					{
						// C:\\Users\\grand\\Desktop\\another\\MySQL.g:898:44:
						// ^( relational_op predicate predicate )
						{
							Object root_1 = (Object) adaptor.nil();
							root_1 = (Object) adaptor.becomeRoot(
									stream_relational_op.nextNode(), root_1);

							adaptor.addChild(root_1,
									stream_predicate.nextTree());
							adaptor.addChild(root_1,
									stream_predicate.nextTree());

							adaptor.addChild(root_0, root_1);
						}

					}

					retval.tree = root_0;
				}
			}
				break;
			case 2:
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:899:4: ( predicate
			// relational_op ( ALL | ANY )? subquery )
			{
				root_0 = (Object) adaptor.nil();

				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:899:4: (
				// predicate relational_op ( ALL | ANY )? subquery )
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:899:6: predicate
				// relational_op ( ALL | ANY )? subquery
				{
					pushFollow(FOLLOW_predicate_in_bool_primary7926);
					predicate1191 = predicate();

					state._fsp--;
					if (state.failed)
						return retval;
					if (state.backtracking == 0)
						adaptor.addChild(root_0, predicate1191.getTree());
					pushFollow(FOLLOW_relational_op_in_bool_primary7928);
					relational_op1192 = relational_op();

					state._fsp--;
					if (state.failed)
						return retval;
					if (state.backtracking == 0)
						root_0 = (Object) adaptor.becomeRoot(
								relational_op1192.getTree(), root_0);
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:899:31: ( ALL
					// | ANY )?
					int alt426 = 3;
					int LA426_0 = input.LA(1);

					if ((LA426_0 == ALL)) {
						alt426 = 1;
					} else if ((LA426_0 == ANY)) {
						alt426 = 2;
					}
					switch (alt426) {
					case 1:
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:899:33: ALL
					{
						ALL1193 = (Token) match(input, ALL,
								FOLLOW_ALL_in_bool_primary7933);
						if (state.failed)
							return retval;
						if (state.backtracking == 0) {
							ALL1193_tree = (Object) adaptor.create(ALL1193);
							root_0 = (Object) adaptor.becomeRoot(ALL1193_tree,
									root_0);
						}

					}
						break;
					case 2:
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:899:40: ANY
					{
						ANY1194 = (Token) match(input, ANY,
								FOLLOW_ANY_in_bool_primary7938);
						if (state.failed)
							return retval;
						if (state.backtracking == 0) {
							ANY1194_tree = (Object) adaptor.create(ANY1194);
							root_0 = (Object) adaptor.becomeRoot(ANY1194_tree,
									root_0);
						}

					}
						break;

					}

					pushFollow(FOLLOW_subquery_in_bool_primary7944);
					subquery1195 = subquery();

					state._fsp--;
					if (state.failed)
						return retval;
					if (state.backtracking == 0)
						adaptor.addChild(root_0, subquery1195.getTree());

				}

			}
				break;
			case 3:
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:900:4: ( ( NOT_SYM )?
			// EXISTS subquery )
			{
				root_0 = (Object) adaptor.nil();

				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:900:4: ( (
				// NOT_SYM )? EXISTS subquery )
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:900:6: ( NOT_SYM
				// )? EXISTS subquery
				{
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:900:6: (
					// NOT_SYM )?
					int alt427 = 2;
					int LA427_0 = input.LA(1);

					if ((LA427_0 == NOT_SYM)) {
						alt427 = 1;
					}
					switch (alt427) {
					case 1:
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:900:7:
					// NOT_SYM
					{
						NOT_SYM1196 = (Token) match(input, NOT_SYM,
								FOLLOW_NOT_SYM_in_bool_primary7954);
						if (state.failed)
							return retval;
						if (state.backtracking == 0) {
							NOT_SYM1196_tree = (Object) adaptor
									.create(NOT_SYM1196);
							root_0 = (Object) adaptor.becomeRoot(
									NOT_SYM1196_tree, root_0);
						}

					}
						break;

					}

					EXISTS1197 = (Token) match(input, EXISTS,
							FOLLOW_EXISTS_in_bool_primary7959);
					if (state.failed)
						return retval;
					if (state.backtracking == 0) {
						EXISTS1197_tree = (Object) adaptor.create(EXISTS1197);
						root_0 = (Object) adaptor.becomeRoot(EXISTS1197_tree,
								root_0);
					}
					pushFollow(FOLLOW_subquery_in_bool_primary7962);
					subquery1198 = subquery();

					state._fsp--;
					if (state.failed)
						return retval;
					if (state.backtracking == 0)
						adaptor.addChild(root_0, subquery1198.getTree());

				}

			}
				break;
			case 4:
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:901:4: predicate
			{
				root_0 = (Object) adaptor.nil();

				pushFollow(FOLLOW_predicate_in_bool_primary7970);
				predicate1199 = predicate();

				state._fsp--;
				if (state.failed)
					return retval;
				if (state.backtracking == 0)
					adaptor.addChild(root_0, predicate1199.getTree());

			}
				break;

			}
			retval.stop = input.LT(-1);

			if (state.backtracking == 0) {

				retval.tree = (Object) adaptor.rulePostProcessing(root_0);
				adaptor.setTokenBoundaries(retval.tree, retval.start,
						retval.stop);
			}
		} catch (RecognitionException re) {
			reportError(re);
			recover(input, re);
			retval.tree = (Object) adaptor.errorNode(input, retval.start,
					input.LT(-1), re);

		} finally {
		}
		return retval;
	}

	// $ANTLR end "bool_primary"

	public static class predicate_return extends ParserRuleReturnScope {
		Object tree;

		public Object getTree() {
			return tree;
		}
	};

	// $ANTLR start "predicate"
	// C:\\Users\\grand\\Desktop\\another\\MySQL.g:903:1: predicate : ( (
	// bit_expr ( NOT_SYM )? IN_SYM ( subquery | expression_list ) ) | (
	// bit_expr ( NOT_SYM )? BETWEEN bit_expr AND_SYM predicate ) | ( bit_expr
	// SOUNDS_SYM LIKE_SYM bit_expr ) | ( bit_expr ( NOT_SYM )? LIKE_SYM
	// simple_expr ( ESCAPE_SYM simple_expr )? ) | ( bit_expr ( NOT_SYM )?
	// REGEXP bit_expr ) | ( bit_expr ) );
	public final MySQLParser.predicate_return predicate()
			throws RecognitionException {
		MySQLParser.predicate_return retval = new MySQLParser.predicate_return();
		retval.start = input.LT(1);

		Object root_0 = null;

		Token NOT_SYM1201 = null;
		Token IN_SYM1202 = null;
		Token NOT_SYM1206 = null;
		Token BETWEEN1207 = null;
		Token AND_SYM1209 = null;
		Token SOUNDS_SYM1212 = null;
		Token LIKE_SYM1213 = null;
		Token NOT_SYM1216 = null;
		Token LIKE_SYM1217 = null;
		Token ESCAPE_SYM1219 = null;
		Token NOT_SYM1222 = null;
		Token REGEXP1223 = null;
		MySQLParser.bit_expr_return bit_expr1200 = null;

		MySQLParser.subquery_return subquery1203 = null;

		MySQLParser.expression_list_return expression_list1204 = null;

		MySQLParser.bit_expr_return bit_expr1205 = null;

		MySQLParser.bit_expr_return bit_expr1208 = null;

		MySQLParser.predicate_return predicate1210 = null;

		MySQLParser.bit_expr_return bit_expr1211 = null;

		MySQLParser.bit_expr_return bit_expr1214 = null;

		MySQLParser.bit_expr_return bit_expr1215 = null;

		MySQLParser.simple_expr_return simple_expr1218 = null;

		MySQLParser.simple_expr_return simple_expr1220 = null;

		MySQLParser.bit_expr_return bit_expr1221 = null;

		MySQLParser.bit_expr_return bit_expr1224 = null;

		MySQLParser.bit_expr_return bit_expr1225 = null;

		Object NOT_SYM1201_tree = null;
		Object IN_SYM1202_tree = null;
		Object NOT_SYM1206_tree = null;
		Object BETWEEN1207_tree = null;
		Object AND_SYM1209_tree = null;
		Object SOUNDS_SYM1212_tree = null;
		Object LIKE_SYM1213_tree = null;
		Object NOT_SYM1216_tree = null;
		Object LIKE_SYM1217_tree = null;
		Object ESCAPE_SYM1219_tree = null;
		Object NOT_SYM1222_tree = null;
		Object REGEXP1223_tree = null;

		try {
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:903:10: ( ( bit_expr
			// ( NOT_SYM )? IN_SYM ( subquery | expression_list ) ) | ( bit_expr
			// ( NOT_SYM )? BETWEEN bit_expr AND_SYM predicate ) | ( bit_expr
			// SOUNDS_SYM LIKE_SYM bit_expr ) | ( bit_expr ( NOT_SYM )? LIKE_SYM
			// simple_expr ( ESCAPE_SYM simple_expr )? ) | ( bit_expr ( NOT_SYM
			// )? REGEXP bit_expr ) | ( bit_expr ) )
			int alt435 = 6;
			alt435 = dfa435.predict(input);
			switch (alt435) {
			case 1:
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:904:4: ( bit_expr (
			// NOT_SYM )? IN_SYM ( subquery | expression_list ) )
			{
				root_0 = (Object) adaptor.nil();

				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:904:4: ( bit_expr
				// ( NOT_SYM )? IN_SYM ( subquery | expression_list ) )
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:904:6: bit_expr (
				// NOT_SYM )? IN_SYM ( subquery | expression_list )
				{
					pushFollow(FOLLOW_bit_expr_in_predicate7983);
					bit_expr1200 = bit_expr();

					state._fsp--;
					if (state.failed)
						return retval;
					if (state.backtracking == 0)
						adaptor.addChild(root_0, bit_expr1200.getTree());
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:904:15: (
					// NOT_SYM )?
					int alt429 = 2;
					int LA429_0 = input.LA(1);

					if ((LA429_0 == NOT_SYM)) {
						alt429 = 1;
					}
					switch (alt429) {
					case 1:
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:904:16:
					// NOT_SYM
					{
						NOT_SYM1201 = (Token) match(input, NOT_SYM,
								FOLLOW_NOT_SYM_in_predicate7986);
						if (state.failed)
							return retval;
						if (state.backtracking == 0) {
							NOT_SYM1201_tree = (Object) adaptor
									.create(NOT_SYM1201);
							root_0 = (Object) adaptor.becomeRoot(
									NOT_SYM1201_tree, root_0);
						}

					}
						break;

					}

					IN_SYM1202 = (Token) match(input, IN_SYM,
							FOLLOW_IN_SYM_in_predicate7991);
					if (state.failed)
						return retval;
					if (state.backtracking == 0) {
						IN_SYM1202_tree = (Object) adaptor.create(IN_SYM1202);
						root_0 = (Object) adaptor.becomeRoot(IN_SYM1202_tree,
								root_0);
					}
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:904:35: (
					// subquery | expression_list )
					int alt430 = 2;
					int LA430_0 = input.LA(1);

					if ((LA430_0 == LPAREN)) {
						int LA430_1 = input.LA(2);

						if ((LA430_1 == SELECT)) {
							alt430 = 1;
						} else if ((LA430_1 == INTEGER_NUM
								|| LA430_1 == LPAREN
								|| LA430_1 == INSERT
								|| LA430_1 == VALUES
								|| LA430_1 == DEFAULT
								|| (LA430_1 >= IF && LA430_1 <= EXISTS)
								|| LA430_1 == TEXT_STRING
								|| LA430_1 == NULL_SYM
								|| (LA430_1 >= DATE_SYM && LA430_1 <= TIMESTAMP)
								|| (LA430_1 >= YEAR && LA430_1 <= CHAR)
								|| LA430_1 == BINARY || LA430_1 == MATCH
								|| LA430_1 == PASSWORD
								|| LA430_1 == CONVERT_SYM
								|| LA430_1 == TRUNCATE || LA430_1 == REPLACE
								|| LA430_1 == CURRENT_USER
								|| LA430_1 == ASCII_SYM
								|| (LA430_1 >= SECOND && LA430_1 <= HOUR)
								|| (LA430_1 >= WEEK && LA430_1 <= QUARTER)
								|| (LA430_1 >= PLUS && LA430_1 <= ID)
								|| (LA430_1 >= NEGATION && LA430_1 <= CASE_SYM) || LA430_1 == INTERVAL_SYM)) {
							alt430 = 2;
						} else {
							if (state.backtracking > 0) {
								state.failed = true;
								return retval;
							}
							NoViableAltException nvae = new NoViableAltException(
									"", 430, 1, input);

							throw nvae;
						}
					} else {
						if (state.backtracking > 0) {
							state.failed = true;
							return retval;
						}
						NoViableAltException nvae = new NoViableAltException(
								"", 430, 0, input);

						throw nvae;
					}
					switch (alt430) {
					case 1:
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:904:36:
					// subquery
					{
						pushFollow(FOLLOW_subquery_in_predicate7995);
						subquery1203 = subquery();

						state._fsp--;
						if (state.failed)
							return retval;
						if (state.backtracking == 0)
							adaptor.addChild(root_0, subquery1203.getTree());

					}
						break;
					case 2:
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:904:47:
					// expression_list
					{
						pushFollow(FOLLOW_expression_list_in_predicate7999);
						expression_list1204 = expression_list();

						state._fsp--;
						if (state.failed)
							return retval;
						if (state.backtracking == 0)
							adaptor.addChild(root_0,
									expression_list1204.getTree());

					}
						break;

					}

				}

			}
				break;
			case 2:
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:905:4: ( bit_expr (
			// NOT_SYM )? BETWEEN bit_expr AND_SYM predicate )
			{
				root_0 = (Object) adaptor.nil();

				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:905:4: ( bit_expr
				// ( NOT_SYM )? BETWEEN bit_expr AND_SYM predicate )
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:905:6: bit_expr (
				// NOT_SYM )? BETWEEN bit_expr AND_SYM predicate
				{
					pushFollow(FOLLOW_bit_expr_in_predicate8009);
					bit_expr1205 = bit_expr();

					state._fsp--;
					if (state.failed)
						return retval;
					if (state.backtracking == 0)
						adaptor.addChild(root_0, bit_expr1205.getTree());
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:905:15: (
					// NOT_SYM )?
					int alt431 = 2;
					int LA431_0 = input.LA(1);

					if ((LA431_0 == NOT_SYM)) {
						alt431 = 1;
					}
					switch (alt431) {
					case 1:
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:905:16:
					// NOT_SYM
					{
						NOT_SYM1206 = (Token) match(input, NOT_SYM,
								FOLLOW_NOT_SYM_in_predicate8012);
						if (state.failed)
							return retval;
						if (state.backtracking == 0) {
							NOT_SYM1206_tree = (Object) adaptor
									.create(NOT_SYM1206);
							root_0 = (Object) adaptor.becomeRoot(
									NOT_SYM1206_tree, root_0);
						}

					}
						break;

					}

					BETWEEN1207 = (Token) match(input, BETWEEN,
							FOLLOW_BETWEEN_in_predicate8017);
					if (state.failed)
						return retval;
					if (state.backtracking == 0) {
						BETWEEN1207_tree = (Object) adaptor.create(BETWEEN1207);
						root_0 = (Object) adaptor.becomeRoot(BETWEEN1207_tree,
								root_0);
					}
					pushFollow(FOLLOW_bit_expr_in_predicate8020);
					bit_expr1208 = bit_expr();

					state._fsp--;
					if (state.failed)
						return retval;
					if (state.backtracking == 0)
						adaptor.addChild(root_0, bit_expr1208.getTree());
					AND_SYM1209 = (Token) match(input, AND_SYM,
							FOLLOW_AND_SYM_in_predicate8022);
					if (state.failed)
						return retval;
					pushFollow(FOLLOW_predicate_in_predicate8025);
					predicate1210 = predicate();

					state._fsp--;
					if (state.failed)
						return retval;
					if (state.backtracking == 0)
						adaptor.addChild(root_0, predicate1210.getTree());

				}

			}
				break;
			case 3:
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:906:4: ( bit_expr
			// SOUNDS_SYM LIKE_SYM bit_expr )
			{
				root_0 = (Object) adaptor.nil();

				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:906:4: ( bit_expr
				// SOUNDS_SYM LIKE_SYM bit_expr )
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:906:6: bit_expr
				// SOUNDS_SYM LIKE_SYM bit_expr
				{
					pushFollow(FOLLOW_bit_expr_in_predicate8035);
					bit_expr1211 = bit_expr();

					state._fsp--;
					if (state.failed)
						return retval;
					if (state.backtracking == 0)
						adaptor.addChild(root_0, bit_expr1211.getTree());
					SOUNDS_SYM1212 = (Token) match(input, SOUNDS_SYM,
							FOLLOW_SOUNDS_SYM_in_predicate8037);
					if (state.failed)
						return retval;
					LIKE_SYM1213 = (Token) match(input, LIKE_SYM,
							FOLLOW_LIKE_SYM_in_predicate8040);
					if (state.failed)
						return retval;
					if (state.backtracking == 0) {
						LIKE_SYM1213_tree = (Object) adaptor
								.create(LIKE_SYM1213);
						root_0 = (Object) adaptor.becomeRoot(LIKE_SYM1213_tree,
								root_0);
					}
					pushFollow(FOLLOW_bit_expr_in_predicate8043);
					bit_expr1214 = bit_expr();

					state._fsp--;
					if (state.failed)
						return retval;
					if (state.backtracking == 0)
						adaptor.addChild(root_0, bit_expr1214.getTree());

				}

			}
				break;
			case 4:
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:907:4: ( bit_expr (
			// NOT_SYM )? LIKE_SYM simple_expr ( ESCAPE_SYM simple_expr )? )
			{
				root_0 = (Object) adaptor.nil();

				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:907:4: ( bit_expr
				// ( NOT_SYM )? LIKE_SYM simple_expr ( ESCAPE_SYM simple_expr )?
				// )
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:907:6: bit_expr (
				// NOT_SYM )? LIKE_SYM simple_expr ( ESCAPE_SYM simple_expr )?
				{
					pushFollow(FOLLOW_bit_expr_in_predicate8053);
					bit_expr1215 = bit_expr();

					state._fsp--;
					if (state.failed)
						return retval;
					if (state.backtracking == 0)
						adaptor.addChild(root_0, bit_expr1215.getTree());
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:907:15: (
					// NOT_SYM )?
					int alt432 = 2;
					int LA432_0 = input.LA(1);

					if ((LA432_0 == NOT_SYM)) {
						alt432 = 1;
					}
					switch (alt432) {
					case 1:
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:907:16:
					// NOT_SYM
					{
						NOT_SYM1216 = (Token) match(input, NOT_SYM,
								FOLLOW_NOT_SYM_in_predicate8056);
						if (state.failed)
							return retval;
						if (state.backtracking == 0) {
							NOT_SYM1216_tree = (Object) adaptor
									.create(NOT_SYM1216);
							root_0 = (Object) adaptor.becomeRoot(
									NOT_SYM1216_tree, root_0);
						}

					}
						break;

					}

					LIKE_SYM1217 = (Token) match(input, LIKE_SYM,
							FOLLOW_LIKE_SYM_in_predicate8061);
					if (state.failed)
						return retval;
					if (state.backtracking == 0) {
						LIKE_SYM1217_tree = (Object) adaptor
								.create(LIKE_SYM1217);
						root_0 = (Object) adaptor.becomeRoot(LIKE_SYM1217_tree,
								root_0);
					}
					pushFollow(FOLLOW_simple_expr_in_predicate8064);
					simple_expr1218 = simple_expr();

					state._fsp--;
					if (state.failed)
						return retval;
					if (state.backtracking == 0)
						adaptor.addChild(root_0, simple_expr1218.getTree());
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:907:49: (
					// ESCAPE_SYM simple_expr )?
					int alt433 = 2;
					int LA433_0 = input.LA(1);

					if ((LA433_0 == ESCAPE_SYM)) {
						int LA433_1 = input.LA(2);

						if ((synpred861_MySQL())) {
							alt433 = 1;
						}
					}
					switch (alt433) {
					case 1:
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:907:50:
					// ESCAPE_SYM simple_expr
					{
						ESCAPE_SYM1219 = (Token) match(input, ESCAPE_SYM,
								FOLLOW_ESCAPE_SYM_in_predicate8067);
						if (state.failed)
							return retval;
						if (state.backtracking == 0) {
							ESCAPE_SYM1219_tree = (Object) adaptor
									.create(ESCAPE_SYM1219);
							root_0 = (Object) adaptor.becomeRoot(
									ESCAPE_SYM1219_tree, root_0);
						}
						pushFollow(FOLLOW_simple_expr_in_predicate8070);
						simple_expr1220 = simple_expr();

						state._fsp--;
						if (state.failed)
							return retval;
						if (state.backtracking == 0)
							adaptor.addChild(root_0, simple_expr1220.getTree());

					}
						break;

					}

				}

			}
				break;
			case 5:
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:908:4: ( bit_expr (
			// NOT_SYM )? REGEXP bit_expr )
			{
				root_0 = (Object) adaptor.nil();

				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:908:4: ( bit_expr
				// ( NOT_SYM )? REGEXP bit_expr )
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:908:6: bit_expr (
				// NOT_SYM )? REGEXP bit_expr
				{
					pushFollow(FOLLOW_bit_expr_in_predicate8081);
					bit_expr1221 = bit_expr();

					state._fsp--;
					if (state.failed)
						return retval;
					if (state.backtracking == 0)
						adaptor.addChild(root_0, bit_expr1221.getTree());
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:908:15: (
					// NOT_SYM )?
					int alt434 = 2;
					int LA434_0 = input.LA(1);

					if ((LA434_0 == NOT_SYM)) {
						alt434 = 1;
					}
					switch (alt434) {
					case 1:
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:908:16:
					// NOT_SYM
					{
						NOT_SYM1222 = (Token) match(input, NOT_SYM,
								FOLLOW_NOT_SYM_in_predicate8084);
						if (state.failed)
							return retval;
						if (state.backtracking == 0) {
							NOT_SYM1222_tree = (Object) adaptor
									.create(NOT_SYM1222);
							root_0 = (Object) adaptor.becomeRoot(
									NOT_SYM1222_tree, root_0);
						}

					}
						break;

					}

					REGEXP1223 = (Token) match(input, REGEXP,
							FOLLOW_REGEXP_in_predicate8089);
					if (state.failed)
						return retval;
					if (state.backtracking == 0) {
						REGEXP1223_tree = (Object) adaptor.create(REGEXP1223);
						root_0 = (Object) adaptor.becomeRoot(REGEXP1223_tree,
								root_0);
					}
					pushFollow(FOLLOW_bit_expr_in_predicate8092);
					bit_expr1224 = bit_expr();

					state._fsp--;
					if (state.failed)
						return retval;
					if (state.backtracking == 0)
						adaptor.addChild(root_0, bit_expr1224.getTree());

				}

			}
				break;
			case 6:
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:909:4: ( bit_expr )
			{
				root_0 = (Object) adaptor.nil();

				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:909:4: ( bit_expr
				// )
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:909:6: bit_expr
				{
					pushFollow(FOLLOW_bit_expr_in_predicate8102);
					bit_expr1225 = bit_expr();

					state._fsp--;
					if (state.failed)
						return retval;
					if (state.backtracking == 0)
						adaptor.addChild(root_0, bit_expr1225.getTree());

				}

			}
				break;

			}
			retval.stop = input.LT(-1);

			if (state.backtracking == 0) {

				retval.tree = (Object) adaptor.rulePostProcessing(root_0);
				adaptor.setTokenBoundaries(retval.tree, retval.start,
						retval.stop);
			}
		} catch (RecognitionException re) {
			reportError(re);
			recover(input, re);
			retval.tree = (Object) adaptor.errorNode(input, retval.start,
					input.LT(-1), re);

		} finally {
		}
		return retval;
	}

	// $ANTLR end "predicate"

	public static class bit_expr_return extends ParserRuleReturnScope {
		Object tree;

		public Object getTree() {
			return tree;
		}
	};

	// $ANTLR start "bit_expr"
	// C:\\Users\\grand\\Desktop\\another\\MySQL.g:912:1: bit_expr : factor1 (
	// VERTBAR factor1 )? ;
	public final MySQLParser.bit_expr_return bit_expr()
			throws RecognitionException {
		MySQLParser.bit_expr_return retval = new MySQLParser.bit_expr_return();
		retval.start = input.LT(1);

		Object root_0 = null;

		Token VERTBAR1227 = null;
		MySQLParser.factor1_return factor11226 = null;

		MySQLParser.factor1_return factor11228 = null;

		Object VERTBAR1227_tree = null;

		try {
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:912:9: ( factor1 (
			// VERTBAR factor1 )? )
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:913:2: factor1 (
			// VERTBAR factor1 )?
			{
				root_0 = (Object) adaptor.nil();

				pushFollow(FOLLOW_factor1_in_bit_expr8115);
				factor11226 = factor1();

				state._fsp--;
				if (state.failed)
					return retval;
				if (state.backtracking == 0)
					adaptor.addChild(root_0, factor11226.getTree());
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:913:10: ( VERTBAR
				// factor1 )?
				int alt436 = 2;
				int LA436_0 = input.LA(1);

				if ((LA436_0 == VERTBAR)) {
					int LA436_1 = input.LA(2);

					if ((synpred865_MySQL())) {
						alt436 = 1;
					}
				}
				switch (alt436) {
				case 1:
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:913:12: VERTBAR
				// factor1
				{
					VERTBAR1227 = (Token) match(input, VERTBAR,
							FOLLOW_VERTBAR_in_bit_expr8119);
					if (state.failed)
						return retval;
					if (state.backtracking == 0) {
						VERTBAR1227_tree = (Object) adaptor.create(VERTBAR1227);
						root_0 = (Object) adaptor.becomeRoot(VERTBAR1227_tree,
								root_0);
					}
					pushFollow(FOLLOW_factor1_in_bit_expr8122);
					factor11228 = factor1();

					state._fsp--;
					if (state.failed)
						return retval;
					if (state.backtracking == 0)
						adaptor.addChild(root_0, factor11228.getTree());

				}
					break;

				}

			}

			retval.stop = input.LT(-1);

			if (state.backtracking == 0) {

				retval.tree = (Object) adaptor.rulePostProcessing(root_0);
				adaptor.setTokenBoundaries(retval.tree, retval.start,
						retval.stop);
			}
		} catch (RecognitionException re) {
			reportError(re);
			recover(input, re);
			retval.tree = (Object) adaptor.errorNode(input, retval.start,
					input.LT(-1), re);

		} finally {
		}
		return retval;
	}

	// $ANTLR end "bit_expr"

	public static class factor1_return extends ParserRuleReturnScope {
		Object tree;

		public Object getTree() {
			return tree;
		}
	};

	// $ANTLR start "factor1"
	// C:\\Users\\grand\\Desktop\\another\\MySQL.g:914:1: factor1 : factor2 (
	// BITAND factor2 )? ;
	public final MySQLParser.factor1_return factor1()
			throws RecognitionException {
		MySQLParser.factor1_return retval = new MySQLParser.factor1_return();
		retval.start = input.LT(1);

		Object root_0 = null;

		Token BITAND1230 = null;
		MySQLParser.factor2_return factor21229 = null;

		MySQLParser.factor2_return factor21231 = null;

		Object BITAND1230_tree = null;

		try {
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:914:8: ( factor2 (
			// BITAND factor2 )? )
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:915:2: factor2 (
			// BITAND factor2 )?
			{
				root_0 = (Object) adaptor.nil();

				pushFollow(FOLLOW_factor2_in_factor18133);
				factor21229 = factor2();

				state._fsp--;
				if (state.failed)
					return retval;
				if (state.backtracking == 0)
					adaptor.addChild(root_0, factor21229.getTree());
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:915:10: ( BITAND
				// factor2 )?
				int alt437 = 2;
				int LA437_0 = input.LA(1);

				if ((LA437_0 == BITAND)) {
					int LA437_1 = input.LA(2);

					if ((synpred866_MySQL())) {
						alt437 = 1;
					}
				}
				switch (alt437) {
				case 1:
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:915:12: BITAND
				// factor2
				{
					BITAND1230 = (Token) match(input, BITAND,
							FOLLOW_BITAND_in_factor18137);
					if (state.failed)
						return retval;
					if (state.backtracking == 0) {
						BITAND1230_tree = (Object) adaptor.create(BITAND1230);
						root_0 = (Object) adaptor.becomeRoot(BITAND1230_tree,
								root_0);
					}
					pushFollow(FOLLOW_factor2_in_factor18140);
					factor21231 = factor2();

					state._fsp--;
					if (state.failed)
						return retval;
					if (state.backtracking == 0)
						adaptor.addChild(root_0, factor21231.getTree());

				}
					break;

				}

			}

			retval.stop = input.LT(-1);

			if (state.backtracking == 0) {

				retval.tree = (Object) adaptor.rulePostProcessing(root_0);
				adaptor.setTokenBoundaries(retval.tree, retval.start,
						retval.stop);
			}
		} catch (RecognitionException re) {
			reportError(re);
			recover(input, re);
			retval.tree = (Object) adaptor.errorNode(input, retval.start,
					input.LT(-1), re);

		} finally {
		}
		return retval;
	}

	// $ANTLR end "factor1"

	public static class factor2_return extends ParserRuleReturnScope {
		Object tree;

		public Object getTree() {
			return tree;
		}
	};

	// $ANTLR start "factor2"
	// C:\\Users\\grand\\Desktop\\another\\MySQL.g:916:1: factor2 : factor3 ( (
	// SHIFT_LEFT | SHIFT_RIGHT ) factor3 )? ;
	public final MySQLParser.factor2_return factor2()
			throws RecognitionException {
		MySQLParser.factor2_return retval = new MySQLParser.factor2_return();
		retval.start = input.LT(1);

		Object root_0 = null;

		Token SHIFT_LEFT1233 = null;
		Token SHIFT_RIGHT1234 = null;
		MySQLParser.factor3_return factor31232 = null;

		MySQLParser.factor3_return factor31235 = null;

		Object SHIFT_LEFT1233_tree = null;
		Object SHIFT_RIGHT1234_tree = null;

		try {
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:916:8: ( factor3 ( (
			// SHIFT_LEFT | SHIFT_RIGHT ) factor3 )? )
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:917:2: factor3 ( (
			// SHIFT_LEFT | SHIFT_RIGHT ) factor3 )?
			{
				root_0 = (Object) adaptor.nil();

				pushFollow(FOLLOW_factor3_in_factor28151);
				factor31232 = factor3();

				state._fsp--;
				if (state.failed)
					return retval;
				if (state.backtracking == 0)
					adaptor.addChild(root_0, factor31232.getTree());
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:917:10: ( (
				// SHIFT_LEFT | SHIFT_RIGHT ) factor3 )?
				int alt439 = 2;
				int LA439_0 = input.LA(1);

				if ((LA439_0 == SHIFT_LEFT)) {
					int LA439_1 = input.LA(2);

					if ((synpred868_MySQL())) {
						alt439 = 1;
					}
				} else if ((LA439_0 == SHIFT_RIGHT)) {
					int LA439_2 = input.LA(2);

					if ((synpred868_MySQL())) {
						alt439 = 1;
					}
				}
				switch (alt439) {
				case 1:
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:917:12: (
				// SHIFT_LEFT | SHIFT_RIGHT ) factor3
				{
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:917:12: (
					// SHIFT_LEFT | SHIFT_RIGHT )
					int alt438 = 2;
					int LA438_0 = input.LA(1);

					if ((LA438_0 == SHIFT_LEFT)) {
						alt438 = 1;
					} else if ((LA438_0 == SHIFT_RIGHT)) {
						alt438 = 2;
					} else {
						if (state.backtracking > 0) {
							state.failed = true;
							return retval;
						}
						NoViableAltException nvae = new NoViableAltException(
								"", 438, 0, input);

						throw nvae;
					}
					switch (alt438) {
					case 1:
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:917:13:
					// SHIFT_LEFT
					{
						SHIFT_LEFT1233 = (Token) match(input, SHIFT_LEFT,
								FOLLOW_SHIFT_LEFT_in_factor28156);
						if (state.failed)
							return retval;
						if (state.backtracking == 0) {
							SHIFT_LEFT1233_tree = (Object) adaptor
									.create(SHIFT_LEFT1233);
							root_0 = (Object) adaptor.becomeRoot(
									SHIFT_LEFT1233_tree, root_0);
						}

					}
						break;
					case 2:
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:917:25:
					// SHIFT_RIGHT
					{
						SHIFT_RIGHT1234 = (Token) match(input, SHIFT_RIGHT,
								FOLLOW_SHIFT_RIGHT_in_factor28159);
						if (state.failed)
							return retval;
						if (state.backtracking == 0) {
							SHIFT_RIGHT1234_tree = (Object) adaptor
									.create(SHIFT_RIGHT1234);
							root_0 = (Object) adaptor.becomeRoot(
									SHIFT_RIGHT1234_tree, root_0);
						}

					}
						break;

					}

					pushFollow(FOLLOW_factor3_in_factor28163);
					factor31235 = factor3();

					state._fsp--;
					if (state.failed)
						return retval;
					if (state.backtracking == 0)
						adaptor.addChild(root_0, factor31235.getTree());

				}
					break;

				}

			}

			retval.stop = input.LT(-1);

			if (state.backtracking == 0) {

				retval.tree = (Object) adaptor.rulePostProcessing(root_0);
				adaptor.setTokenBoundaries(retval.tree, retval.start,
						retval.stop);
			}
		} catch (RecognitionException re) {
			reportError(re);
			recover(input, re);
			retval.tree = (Object) adaptor.errorNode(input, retval.start,
					input.LT(-1), re);

		} finally {
		}
		return retval;
	}

	// $ANTLR end "factor2"

	public static class factor3_return extends ParserRuleReturnScope {
		Object tree;

		public Object getTree() {
			return tree;
		}
	};

	// $ANTLR start "factor3"
	// C:\\Users\\grand\\Desktop\\another\\MySQL.g:918:1: factor3 : factor4 ( (
	// PLUS | MINUS ) factor4 )? ;
	public final MySQLParser.factor3_return factor3()
			throws RecognitionException {
		MySQLParser.factor3_return retval = new MySQLParser.factor3_return();
		retval.start = input.LT(1);

		Object root_0 = null;

		Token PLUS1237 = null;
		Token MINUS1238 = null;
		MySQLParser.factor4_return factor41236 = null;

		MySQLParser.factor4_return factor41239 = null;

		Object PLUS1237_tree = null;
		Object MINUS1238_tree = null;

		try {
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:918:8: ( factor4 ( (
			// PLUS | MINUS ) factor4 )? )
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:919:2: factor4 ( (
			// PLUS | MINUS ) factor4 )?
			{
				root_0 = (Object) adaptor.nil();

				pushFollow(FOLLOW_factor4_in_factor38174);
				factor41236 = factor4();

				state._fsp--;
				if (state.failed)
					return retval;
				if (state.backtracking == 0)
					adaptor.addChild(root_0, factor41236.getTree());
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:919:10: ( ( PLUS
				// | MINUS ) factor4 )?
				int alt441 = 2;
				int LA441_0 = input.LA(1);

				if ((LA441_0 == PLUS)) {
					int LA441_1 = input.LA(2);

					if ((synpred870_MySQL())) {
						alt441 = 1;
					}
				} else if ((LA441_0 == MINUS)) {
					int LA441_2 = input.LA(2);

					if ((synpred870_MySQL())) {
						alt441 = 1;
					}
				}
				switch (alt441) {
				case 1:
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:919:12: ( PLUS |
				// MINUS ) factor4
				{
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:919:12: (
					// PLUS | MINUS )
					int alt440 = 2;
					int LA440_0 = input.LA(1);

					if ((LA440_0 == PLUS)) {
						alt440 = 1;
					} else if ((LA440_0 == MINUS)) {
						alt440 = 2;
					} else {
						if (state.backtracking > 0) {
							state.failed = true;
							return retval;
						}
						NoViableAltException nvae = new NoViableAltException(
								"", 440, 0, input);

						throw nvae;
					}
					switch (alt440) {
					case 1:
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:919:13: PLUS
					{
						PLUS1237 = (Token) match(input, PLUS,
								FOLLOW_PLUS_in_factor38179);
						if (state.failed)
							return retval;
						if (state.backtracking == 0) {
							PLUS1237_tree = (Object) adaptor.create(PLUS1237);
							root_0 = (Object) adaptor.becomeRoot(PLUS1237_tree,
									root_0);
						}

					}
						break;
					case 2:
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:919:19: MINUS
					{
						MINUS1238 = (Token) match(input, MINUS,
								FOLLOW_MINUS_in_factor38182);
						if (state.failed)
							return retval;
						if (state.backtracking == 0) {
							MINUS1238_tree = (Object) adaptor.create(MINUS1238);
							root_0 = (Object) adaptor.becomeRoot(
									MINUS1238_tree, root_0);
						}

					}
						break;

					}

					pushFollow(FOLLOW_factor4_in_factor38186);
					factor41239 = factor4();

					state._fsp--;
					if (state.failed)
						return retval;
					if (state.backtracking == 0)
						adaptor.addChild(root_0, factor41239.getTree());

				}
					break;

				}

			}

			retval.stop = input.LT(-1);

			if (state.backtracking == 0) {

				retval.tree = (Object) adaptor.rulePostProcessing(root_0);
				adaptor.setTokenBoundaries(retval.tree, retval.start,
						retval.stop);
			}
		} catch (RecognitionException re) {
			reportError(re);
			recover(input, re);
			retval.tree = (Object) adaptor.errorNode(input, retval.start,
					input.LT(-1), re);

		} finally {
		}
		return retval;
	}

	// $ANTLR end "factor3"

	public static class factor4_return extends ParserRuleReturnScope {
		Object tree;

		public Object getTree() {
			return tree;
		}
	};

	// $ANTLR start "factor4"
	// C:\\Users\\grand\\Desktop\\another\\MySQL.g:920:1: factor4 : factor5 ( (
	// ASTERISK | DIVIDE | MOD_SYM | POWER_OP ) factor5 )? ;
	public final MySQLParser.factor4_return factor4()
			throws RecognitionException {
		MySQLParser.factor4_return retval = new MySQLParser.factor4_return();
		retval.start = input.LT(1);

		Object root_0 = null;

		Token ASTERISK1241 = null;
		Token DIVIDE1242 = null;
		Token MOD_SYM1243 = null;
		Token POWER_OP1244 = null;
		MySQLParser.factor5_return factor51240 = null;

		MySQLParser.factor5_return factor51245 = null;

		Object ASTERISK1241_tree = null;
		Object DIVIDE1242_tree = null;
		Object MOD_SYM1243_tree = null;
		Object POWER_OP1244_tree = null;

		try {
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:920:8: ( factor5 ( (
			// ASTERISK | DIVIDE | MOD_SYM | POWER_OP ) factor5 )? )
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:921:2: factor5 ( (
			// ASTERISK | DIVIDE | MOD_SYM | POWER_OP ) factor5 )?
			{
				root_0 = (Object) adaptor.nil();

				pushFollow(FOLLOW_factor5_in_factor48197);
				factor51240 = factor5();

				state._fsp--;
				if (state.failed)
					return retval;
				if (state.backtracking == 0)
					adaptor.addChild(root_0, factor51240.getTree());
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:921:10: ( (
				// ASTERISK | DIVIDE | MOD_SYM | POWER_OP ) factor5 )?
				int alt443 = 2;
				switch (input.LA(1)) {
				case ASTERISK: {
					int LA443_1 = input.LA(2);

					if ((synpred874_MySQL())) {
						alt443 = 1;
					}
				}
					break;
				case DIVIDE: {
					int LA443_2 = input.LA(2);

					if ((synpred874_MySQL())) {
						alt443 = 1;
					}
				}
					break;
				case MOD_SYM: {
					int LA443_3 = input.LA(2);

					if ((synpred874_MySQL())) {
						alt443 = 1;
					}
				}
					break;
				case POWER_OP: {
					int LA443_4 = input.LA(2);

					if ((synpred874_MySQL())) {
						alt443 = 1;
					}
				}
					break;
				}

				switch (alt443) {
				case 1:
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:921:12: (
				// ASTERISK | DIVIDE | MOD_SYM | POWER_OP ) factor5
				{
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:921:12: (
					// ASTERISK | DIVIDE | MOD_SYM | POWER_OP )
					int alt442 = 4;
					switch (input.LA(1)) {
					case ASTERISK: {
						alt442 = 1;
					}
						break;
					case DIVIDE: {
						alt442 = 2;
					}
						break;
					case MOD_SYM: {
						alt442 = 3;
					}
						break;
					case POWER_OP: {
						alt442 = 4;
					}
						break;
					default:
						if (state.backtracking > 0) {
							state.failed = true;
							return retval;
						}
						NoViableAltException nvae = new NoViableAltException(
								"", 442, 0, input);

						throw nvae;
					}

					switch (alt442) {
					case 1:
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:921:13:
					// ASTERISK
					{
						ASTERISK1241 = (Token) match(input, ASTERISK,
								FOLLOW_ASTERISK_in_factor48202);
						if (state.failed)
							return retval;
						if (state.backtracking == 0) {
							ASTERISK1241_tree = (Object) adaptor
									.create(ASTERISK1241);
							root_0 = (Object) adaptor.becomeRoot(
									ASTERISK1241_tree, root_0);
						}

					}
						break;
					case 2:
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:921:23:
					// DIVIDE
					{
						DIVIDE1242 = (Token) match(input, DIVIDE,
								FOLLOW_DIVIDE_in_factor48205);
						if (state.failed)
							return retval;
						if (state.backtracking == 0) {
							DIVIDE1242_tree = (Object) adaptor
									.create(DIVIDE1242);
							root_0 = (Object) adaptor.becomeRoot(
									DIVIDE1242_tree, root_0);
						}

					}
						break;
					case 3:
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:921:31:
					// MOD_SYM
					{
						MOD_SYM1243 = (Token) match(input, MOD_SYM,
								FOLLOW_MOD_SYM_in_factor48208);
						if (state.failed)
							return retval;
						if (state.backtracking == 0) {
							MOD_SYM1243_tree = (Object) adaptor
									.create(MOD_SYM1243);
							root_0 = (Object) adaptor.becomeRoot(
									MOD_SYM1243_tree, root_0);
						}

					}
						break;
					case 4:
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:921:40:
					// POWER_OP
					{
						POWER_OP1244 = (Token) match(input, POWER_OP,
								FOLLOW_POWER_OP_in_factor48211);
						if (state.failed)
							return retval;
						if (state.backtracking == 0) {
							POWER_OP1244_tree = (Object) adaptor
									.create(POWER_OP1244);
							root_0 = (Object) adaptor.becomeRoot(
									POWER_OP1244_tree, root_0);
						}

					}
						break;

					}

					pushFollow(FOLLOW_factor5_in_factor48215);
					factor51245 = factor5();

					state._fsp--;
					if (state.failed)
						return retval;
					if (state.backtracking == 0)
						adaptor.addChild(root_0, factor51245.getTree());

				}
					break;

				}

			}

			retval.stop = input.LT(-1);

			if (state.backtracking == 0) {

				retval.tree = (Object) adaptor.rulePostProcessing(root_0);
				adaptor.setTokenBoundaries(retval.tree, retval.start,
						retval.stop);
			}
		} catch (RecognitionException re) {
			reportError(re);
			recover(input, re);
			retval.tree = (Object) adaptor.errorNode(input, retval.start,
					input.LT(-1), re);

		} finally {
		}
		return retval;
	}

	// $ANTLR end "factor4"

	public static class factor5_return extends ParserRuleReturnScope {
		Object tree;

		public Object getTree() {
			return tree;
		}
	};

	// $ANTLR start "factor5"
	// C:\\Users\\grand\\Desktop\\another\\MySQL.g:922:1: factor5 : factor6 ( (
	// PLUS | MINUS ) interval_expr )? ;
	public final MySQLParser.factor5_return factor5()
			throws RecognitionException {
		MySQLParser.factor5_return retval = new MySQLParser.factor5_return();
		retval.start = input.LT(1);

		Object root_0 = null;

		Token PLUS1247 = null;
		Token MINUS1248 = null;
		MySQLParser.factor6_return factor61246 = null;

		MySQLParser.interval_expr_return interval_expr1249 = null;

		Object PLUS1247_tree = null;
		Object MINUS1248_tree = null;

		try {
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:922:8: ( factor6 ( (
			// PLUS | MINUS ) interval_expr )? )
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:923:2: factor6 ( (
			// PLUS | MINUS ) interval_expr )?
			{
				root_0 = (Object) adaptor.nil();

				pushFollow(FOLLOW_factor6_in_factor58226);
				factor61246 = factor6();

				state._fsp--;
				if (state.failed)
					return retval;
				if (state.backtracking == 0)
					adaptor.addChild(root_0, factor61246.getTree());
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:923:10: ( ( PLUS
				// | MINUS ) interval_expr )?
				int alt445 = 2;
				int LA445_0 = input.LA(1);

				if ((LA445_0 == PLUS)) {
					int LA445_1 = input.LA(2);

					if ((synpred876_MySQL())) {
						alt445 = 1;
					}
				} else if ((LA445_0 == MINUS)) {
					int LA445_2 = input.LA(2);

					if ((synpred876_MySQL())) {
						alt445 = 1;
					}
				}
				switch (alt445) {
				case 1:
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:923:12: ( PLUS |
				// MINUS ) interval_expr
				{
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:923:12: (
					// PLUS | MINUS )
					int alt444 = 2;
					int LA444_0 = input.LA(1);

					if ((LA444_0 == PLUS)) {
						alt444 = 1;
					} else if ((LA444_0 == MINUS)) {
						alt444 = 2;
					} else {
						if (state.backtracking > 0) {
							state.failed = true;
							return retval;
						}
						NoViableAltException nvae = new NoViableAltException(
								"", 444, 0, input);

						throw nvae;
					}
					switch (alt444) {
					case 1:
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:923:13: PLUS
					{
						PLUS1247 = (Token) match(input, PLUS,
								FOLLOW_PLUS_in_factor58231);
						if (state.failed)
							return retval;
						if (state.backtracking == 0) {
							PLUS1247_tree = (Object) adaptor.create(PLUS1247);
							root_0 = (Object) adaptor.becomeRoot(PLUS1247_tree,
									root_0);
						}

					}
						break;
					case 2:
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:923:19: MINUS
					{
						MINUS1248 = (Token) match(input, MINUS,
								FOLLOW_MINUS_in_factor58234);
						if (state.failed)
							return retval;
						if (state.backtracking == 0) {
							MINUS1248_tree = (Object) adaptor.create(MINUS1248);
							root_0 = (Object) adaptor.becomeRoot(
									MINUS1248_tree, root_0);
						}

					}
						break;

					}

					pushFollow(FOLLOW_interval_expr_in_factor58238);
					interval_expr1249 = interval_expr();

					state._fsp--;
					if (state.failed)
						return retval;
					if (state.backtracking == 0)
						adaptor.addChild(root_0, interval_expr1249.getTree());

				}
					break;

				}

			}

			retval.stop = input.LT(-1);

			if (state.backtracking == 0) {

				retval.tree = (Object) adaptor.rulePostProcessing(root_0);
				adaptor.setTokenBoundaries(retval.tree, retval.start,
						retval.stop);
			}
		} catch (RecognitionException re) {
			reportError(re);
			recover(input, re);
			retval.tree = (Object) adaptor.errorNode(input, retval.start,
					input.LT(-1), re);

		} finally {
		}
		return retval;
	}

	// $ANTLR end "factor5"

	public static class factor6_return extends ParserRuleReturnScope {
		Object tree;

		public Object getTree() {
			return tree;
		}
	};

	// $ANTLR start "factor6"
	// C:\\Users\\grand\\Desktop\\another\\MySQL.g:924:1: factor6 : ( ( PLUS |
	// MINUS | NEGATION | BINARY ) simple_expr | simple_expr );
	public final MySQLParser.factor6_return factor6()
			throws RecognitionException {
		MySQLParser.factor6_return retval = new MySQLParser.factor6_return();
		retval.start = input.LT(1);

		Object root_0 = null;

		Token PLUS1250 = null;
		Token MINUS1251 = null;
		Token NEGATION1252 = null;
		Token BINARY1253 = null;
		MySQLParser.simple_expr_return simple_expr1254 = null;

		MySQLParser.simple_expr_return simple_expr1255 = null;

		Object PLUS1250_tree = null;
		Object MINUS1251_tree = null;
		Object NEGATION1252_tree = null;
		Object BINARY1253_tree = null;

		try {
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:924:8: ( ( PLUS |
			// MINUS | NEGATION | BINARY ) simple_expr | simple_expr )
			int alt447 = 2;
			switch (input.LA(1)) {
			case PLUS: {
				int LA447_1 = input.LA(2);

				if ((LA447_1 == INTEGER_NUM || LA447_1 == REAL_NUMBER)) {
					int LA447_5 = input.LA(3);

					if ((synpred880_MySQL())) {
						alt447 = 1;
					} else if ((true)) {
						alt447 = 2;
					} else {
						if (state.backtracking > 0) {
							state.failed = true;
							return retval;
						}
						NoViableAltException nvae = new NoViableAltException(
								"", 447, 5, input);

						throw nvae;
					}
				} else if ((LA447_1 == LPAREN || LA447_1 == INSERT
						|| LA447_1 == VALUES || LA447_1 == DEFAULT
						|| LA447_1 == IF || LA447_1 == EXISTS
						|| LA447_1 == TEXT_STRING || LA447_1 == NULL_SYM
						|| (LA447_1 >= DATE_SYM && LA447_1 <= TIMESTAMP)
						|| (LA447_1 >= YEAR && LA447_1 <= CHAR)
						|| LA447_1 == MATCH || LA447_1 == PASSWORD
						|| LA447_1 == CONVERT_SYM || LA447_1 == TRUNCATE
						|| LA447_1 == REPLACE || LA447_1 == CURRENT_USER
						|| LA447_1 == ASCII_SYM
						|| (LA447_1 >= SECOND && LA447_1 <= HOUR)
						|| (LA447_1 >= WEEK && LA447_1 <= QUARTER)
						|| (LA447_1 >= PLUS && LA447_1 <= MINUS)
						|| (LA447_1 >= HEX_DIGIT && LA447_1 <= ID)
						|| (LA447_1 >= USER_VAR && LA447_1 <= CASE_SYM) || LA447_1 == INTERVAL_SYM)) {
					alt447 = 1;
				} else {
					if (state.backtracking > 0) {
						state.failed = true;
						return retval;
					}
					NoViableAltException nvae = new NoViableAltException("",
							447, 1, input);

					throw nvae;
				}
			}
				break;
			case MINUS: {
				int LA447_2 = input.LA(2);

				if ((LA447_2 == INTEGER_NUM || LA447_2 == REAL_NUMBER)) {
					int LA447_5 = input.LA(3);

					if ((synpred880_MySQL())) {
						alt447 = 1;
					} else if ((true)) {
						alt447 = 2;
					} else {
						if (state.backtracking > 0) {
							state.failed = true;
							return retval;
						}
						NoViableAltException nvae = new NoViableAltException(
								"", 447, 5, input);

						throw nvae;
					}
				} else if ((LA447_2 == LPAREN || LA447_2 == INSERT
						|| LA447_2 == VALUES || LA447_2 == DEFAULT
						|| LA447_2 == IF || LA447_2 == EXISTS
						|| LA447_2 == TEXT_STRING || LA447_2 == NULL_SYM
						|| (LA447_2 >= DATE_SYM && LA447_2 <= TIMESTAMP)
						|| (LA447_2 >= YEAR && LA447_2 <= CHAR)
						|| LA447_2 == MATCH || LA447_2 == PASSWORD
						|| LA447_2 == CONVERT_SYM || LA447_2 == TRUNCATE
						|| LA447_2 == REPLACE || LA447_2 == CURRENT_USER
						|| LA447_2 == ASCII_SYM
						|| (LA447_2 >= SECOND && LA447_2 <= HOUR)
						|| (LA447_2 >= WEEK && LA447_2 <= QUARTER)
						|| (LA447_2 >= PLUS && LA447_2 <= MINUS)
						|| (LA447_2 >= HEX_DIGIT && LA447_2 <= ID)
						|| (LA447_2 >= USER_VAR && LA447_2 <= CASE_SYM) || LA447_2 == INTERVAL_SYM)) {
					alt447 = 1;
				} else {
					if (state.backtracking > 0) {
						state.failed = true;
						return retval;
					}
					NoViableAltException nvae = new NoViableAltException("",
							447, 2, input);

					throw nvae;
				}
			}
				break;
			case BINARY:
			case NEGATION: {
				alt447 = 1;
			}
				break;
			case INTEGER_NUM:
			case LPAREN:
			case INSERT:
			case VALUES:
			case DEFAULT:
			case IF:
			case EXISTS:
			case TEXT_STRING:
			case NULL_SYM:
			case DATE_SYM:
			case TIME_SYM:
			case TIMESTAMP:
			case YEAR:
			case CHAR:
			case MATCH:
			case PASSWORD:
			case CONVERT_SYM:
			case TRUNCATE:
			case REPLACE:
			case CURRENT_USER:
			case ASCII_SYM:
			case SECOND:
			case MINUTE:
			case HOUR:
			case WEEK:
			case MONTH:
			case QUARTER:
			case REAL_NUMBER:
			case HEX_DIGIT:
			case TRUE_SYM:
			case FALSE_SYM:
			case BIT_NUM:
			case ABS:
			case ACOS:
			case ASIN:
			case ATAN2:
			case ATAN:
			case CEIL:
			case CEILING:
			case CONV:
			case COS:
			case COT:
			case CRC32:
			case DEGREES:
			case EXP:
			case FLOOR:
			case LN:
			case LOG10:
			case LOG2:
			case LOG:
			case MOD:
			case PI:
			case POW:
			case POWER:
			case RADIANS:
			case RAND:
			case ROUND:
			case SIGN:
			case SIN:
			case SQRT:
			case TAN:
			case BIN:
			case BIT_LENGTH:
			case CHAR_LENGTH:
			case CONCAT_WS:
			case CONCAT:
			case ELT:
			case EXPORT_SET:
			case FIELD:
			case FIND_IN_SET:
			case FORMAT:
			case FROM_BASE64:
			case HEX:
			case INSTR:
			case LEFT:
			case LENGTH:
			case LOAD_FILE:
			case LOCATE:
			case LOWER:
			case LPAD:
			case LTRIM:
			case MAKE_SET:
			case MID:
			case OCT:
			case ORD:
			case QUOTE:
			case REPEAT:
			case REVERSE:
			case RIGHT:
			case RPAD:
			case RTRIM:
			case SOUNDEX:
			case SPACE:
			case STRCMP:
			case SUBSTRING_INDEX:
			case SUBSTRING:
			case TO_BASE64:
			case TRIM:
			case UNHEX:
			case UPPER:
			case WEIGHT_STRING:
			case ADDDATE:
			case ADDTIME:
			case CONVERT_TZ:
			case CURDATE:
			case CURTIME:
			case DATE_ADD:
			case DATE_FORMAT:
			case DATE_SUB:
			case DATEDIFF:
			case DAYNAME:
			case DAYOFMONTH:
			case DAYOFWEEK:
			case DAYOFYEAR:
			case EXTRACT:
			case FROM_DAYS:
			case FROM_UNIXTIME:
			case GET_FORMAT:
			case LAST_DAY:
			case MAKEDATE:
			case MAKETIME:
			case MICROSECOND:
			case MONTHNAME:
			case NOW:
			case PERIOD_ADD:
			case PERIOD_DIFF:
			case SEC_TO_TIME:
			case STR_TO_DATE:
			case SUBTIME:
			case SYSDATE:
			case TIME_FORMAT:
			case TIME_TO_SEC:
			case TIMEDIFF:
			case TIMESTAMPADD:
			case TIMESTAMPDIFF:
			case TO_DAYS:
			case TO_SECONDS:
			case UNIX_TIMESTAMP:
			case UTC_DATE:
			case UTC_TIME:
			case UTC_TIMESTAMP:
			case WEEKDAY:
			case WEEKOFYEAR:
			case YEARWEEK:
			case IFNULL:
			case AES_ENCRYPT:
			case AES_DECRYPT:
			case DECODE:
			case ENCODE:
			case DES_DECRYPT:
			case DES_ENCRYPT:
			case ENCRYPT:
			case MD5:
			case OLD_PASSWORD:
			case BENCHMARK:
			case CHARSET:
			case COERCIBILITY:
			case COLLATION:
			case CONNECTION_ID:
			case DATABASE:
			case SCHEMA:
			case USER:
			case SESSION_USER:
			case SYSTEM_USER:
			case VERSION_SYM:
			case FOUND_ROWS:
			case LAST_INSERT_ID:
			case GET_LOCK:
			case RELEASE_LOCK:
			case IS_FREE_LOCK:
			case IS_USED_LOCK:
			case MASTER_POS_WAIT:
			case INET_ATON:
			case INET_NTOA:
			case NAME_CONST:
			case SLEEP:
			case UUID:
			case AVG:
			case COUNT:
			case MAX_SYM:
			case MIN_SYM:
			case SUM:
			case BIT_AND:
			case BIT_OR:
			case BIT_XOR:
			case GROUP_CONCAT:
			case STD:
			case STDDEV:
			case STDDEV_POP:
			case STDDEV_SAMP:
			case VAR_POP:
			case VAR_SAMP:
			case VARIANCE:
			case ID:
			case USER_VAR:
			case ROW_SYM:
			case CAST_SYM:
			case CASE_SYM:
			case INTERVAL_SYM: {
				alt447 = 2;
			}
				break;
			default:
				if (state.backtracking > 0) {
					state.failed = true;
					return retval;
				}
				NoViableAltException nvae = new NoViableAltException("", 447,
						0, input);

				throw nvae;
			}

			switch (alt447) {
			case 1:
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:925:2: ( PLUS | MINUS
			// | NEGATION | BINARY ) simple_expr
			{
				root_0 = (Object) adaptor.nil();

				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:925:2: ( PLUS |
				// MINUS | NEGATION | BINARY )
				int alt446 = 4;
				switch (input.LA(1)) {
				case PLUS: {
					alt446 = 1;
				}
					break;
				case MINUS: {
					alt446 = 2;
				}
					break;
				case NEGATION: {
					alt446 = 3;
				}
					break;
				case BINARY: {
					alt446 = 4;
				}
					break;
				default:
					if (state.backtracking > 0) {
						state.failed = true;
						return retval;
					}
					NoViableAltException nvae = new NoViableAltException("",
							446, 0, input);

					throw nvae;
				}

				switch (alt446) {
				case 1:
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:925:3: PLUS
				{
					PLUS1250 = (Token) match(input, PLUS,
							FOLLOW_PLUS_in_factor68250);
					if (state.failed)
						return retval;
					if (state.backtracking == 0) {
						PLUS1250_tree = (Object) adaptor.create(PLUS1250);
						root_0 = (Object) adaptor.becomeRoot(PLUS1250_tree,
								root_0);
					}

				}
					break;
				case 2:
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:925:11: MINUS
				{
					MINUS1251 = (Token) match(input, MINUS,
							FOLLOW_MINUS_in_factor68255);
					if (state.failed)
						return retval;
					if (state.backtracking == 0) {
						MINUS1251_tree = (Object) adaptor.create(MINUS1251);
						root_0 = (Object) adaptor.becomeRoot(MINUS1251_tree,
								root_0);
					}

				}
					break;
				case 3:
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:925:20: NEGATION
				{
					NEGATION1252 = (Token) match(input, NEGATION,
							FOLLOW_NEGATION_in_factor68260);
					if (state.failed)
						return retval;
					if (state.backtracking == 0) {
						NEGATION1252_tree = (Object) adaptor
								.create(NEGATION1252);
						root_0 = (Object) adaptor.becomeRoot(NEGATION1252_tree,
								root_0);
					}

				}
					break;
				case 4:
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:925:32: BINARY
				{
					BINARY1253 = (Token) match(input, BINARY,
							FOLLOW_BINARY_in_factor68265);
					if (state.failed)
						return retval;
					if (state.backtracking == 0) {
						BINARY1253_tree = (Object) adaptor.create(BINARY1253);
						root_0 = (Object) adaptor.becomeRoot(BINARY1253_tree,
								root_0);
					}

				}
					break;

				}

				pushFollow(FOLLOW_simple_expr_in_factor68269);
				simple_expr1254 = simple_expr();

				state._fsp--;
				if (state.failed)
					return retval;
				if (state.backtracking == 0)
					adaptor.addChild(root_0, simple_expr1254.getTree());

			}
				break;
			case 2:
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:926:4: simple_expr
			{
				root_0 = (Object) adaptor.nil();

				pushFollow(FOLLOW_simple_expr_in_factor68274);
				simple_expr1255 = simple_expr();

				state._fsp--;
				if (state.failed)
					return retval;
				if (state.backtracking == 0)
					adaptor.addChild(root_0, simple_expr1255.getTree());

			}
				break;

			}
			retval.stop = input.LT(-1);

			if (state.backtracking == 0) {

				retval.tree = (Object) adaptor.rulePostProcessing(root_0);
				adaptor.setTokenBoundaries(retval.tree, retval.start,
						retval.stop);
			}
		} catch (RecognitionException re) {
			reportError(re);
			recover(input, re);
			retval.tree = (Object) adaptor.errorNode(input, retval.start,
					input.LT(-1), re);

		} finally {
		}
		return retval;
	}

	// $ANTLR end "factor6"

	public static class factor7_return extends ParserRuleReturnScope {
		Object tree;

		public Object getTree() {
			return tree;
		}
	};

	// $ANTLR start "factor7"
	// C:\\Users\\grand\\Desktop\\another\\MySQL.g:927:1: factor7 : simple_expr
	// ( COLLATE_SYM collation_names )? ;
	public final MySQLParser.factor7_return factor7()
			throws RecognitionException {
		MySQLParser.factor7_return retval = new MySQLParser.factor7_return();
		retval.start = input.LT(1);

		Object root_0 = null;

		Token COLLATE_SYM1257 = null;
		MySQLParser.simple_expr_return simple_expr1256 = null;

		MySQLParser.collation_names_return collation_names1258 = null;

		Object COLLATE_SYM1257_tree = null;

		try {
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:927:8: ( simple_expr
			// ( COLLATE_SYM collation_names )? )
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:928:2: simple_expr (
			// COLLATE_SYM collation_names )?
			{
				root_0 = (Object) adaptor.nil();

				pushFollow(FOLLOW_simple_expr_in_factor78282);
				simple_expr1256 = simple_expr();

				state._fsp--;
				if (state.failed)
					return retval;
				if (state.backtracking == 0)
					adaptor.addChild(root_0, simple_expr1256.getTree());
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:928:14: (
				// COLLATE_SYM collation_names )?
				int alt448 = 2;
				int LA448_0 = input.LA(1);

				if ((LA448_0 == COLLATE_SYM)) {
					alt448 = 1;
				}
				switch (alt448) {
				case 1:
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:928:15:
				// COLLATE_SYM collation_names
				{
					COLLATE_SYM1257 = (Token) match(input, COLLATE_SYM,
							FOLLOW_COLLATE_SYM_in_factor78285);
					if (state.failed)
						return retval;
					if (state.backtracking == 0) {
						COLLATE_SYM1257_tree = (Object) adaptor
								.create(COLLATE_SYM1257);
						root_0 = (Object) adaptor.becomeRoot(
								COLLATE_SYM1257_tree, root_0);
					}
					pushFollow(FOLLOW_collation_names_in_factor78288);
					collation_names1258 = collation_names();

					state._fsp--;
					if (state.failed)
						return retval;
					if (state.backtracking == 0)
						adaptor.addChild(root_0, collation_names1258.getTree());

				}
					break;

				}

			}

			retval.stop = input.LT(-1);

			if (state.backtracking == 0) {

				retval.tree = (Object) adaptor.rulePostProcessing(root_0);
				adaptor.setTokenBoundaries(retval.tree, retval.start,
						retval.stop);
			}
		} catch (RecognitionException re) {
			reportError(re);
			recover(input, re);
			retval.tree = (Object) adaptor.errorNode(input, retval.start,
					input.LT(-1), re);

		} finally {
		}
		return retval;
	}

	// $ANTLR end "factor7"

	public static class simple_expr_return extends ParserRuleReturnScope {
		Object tree;

		public Object getTree() {
			return tree;
		}
	};

	// $ANTLR start "simple_expr"
	// C:\\Users\\grand\\Desktop\\another\\MySQL.g:930:1: simple_expr : (
	// literal_value | column_spec | function_call | USER_VAR | expression_list
	// | ( ROW_SYM expression_list ) | subquery | EXISTS subquery |
	// match_against_statement | case_when_statement | interval_expr );
	public final MySQLParser.simple_expr_return simple_expr()
			throws RecognitionException {
		MySQLParser.simple_expr_return retval = new MySQLParser.simple_expr_return();
		retval.start = input.LT(1);

		Object root_0 = null;

		Token USER_VAR1262 = null;
		Token ROW_SYM1264 = null;
		Token EXISTS1267 = null;
		MySQLParser.literal_value_return literal_value1259 = null;

		MySQLParser.column_spec_return column_spec1260 = null;

		MySQLParser.function_call_return function_call1261 = null;

		MySQLParser.expression_list_return expression_list1263 = null;

		MySQLParser.expression_list_return expression_list1265 = null;

		MySQLParser.subquery_return subquery1266 = null;

		MySQLParser.subquery_return subquery1268 = null;

		MySQLParser.match_against_statement_return match_against_statement1269 = null;

		MySQLParser.case_when_statement_return case_when_statement1270 = null;

		MySQLParser.interval_expr_return interval_expr1271 = null;

		Object USER_VAR1262_tree = null;
		Object ROW_SYM1264_tree = null;
		Object EXISTS1267_tree = null;

		try {
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:930:12: (
			// literal_value | column_spec | function_call | USER_VAR |
			// expression_list | ( ROW_SYM expression_list ) | subquery | EXISTS
			// subquery | match_against_statement | case_when_statement |
			// interval_expr )
			int alt449 = 11;
			alt449 = dfa449.predict(input);
			switch (alt449) {
			case 1:
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:931:2: literal_value
			{
				root_0 = (Object) adaptor.nil();

				pushFollow(FOLLOW_literal_value_in_simple_expr8299);
				literal_value1259 = literal_value();

				state._fsp--;
				if (state.failed)
					return retval;
				if (state.backtracking == 0)
					adaptor.addChild(root_0, literal_value1259.getTree());

			}
				break;
			case 2:
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:932:4: column_spec
			{
				root_0 = (Object) adaptor.nil();

				pushFollow(FOLLOW_column_spec_in_simple_expr8305);
				column_spec1260 = column_spec();

				state._fsp--;
				if (state.failed)
					return retval;
				if (state.backtracking == 0)
					adaptor.addChild(root_0, column_spec1260.getTree());

			}
				break;
			case 3:
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:933:4: function_call
			{
				root_0 = (Object) adaptor.nil();

				pushFollow(FOLLOW_function_call_in_simple_expr8310);
				function_call1261 = function_call();

				state._fsp--;
				if (state.failed)
					return retval;
				if (state.backtracking == 0)
					adaptor.addChild(root_0, function_call1261.getTree());

			}
				break;
			case 4:
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:935:4: USER_VAR
			{
				root_0 = (Object) adaptor.nil();

				USER_VAR1262 = (Token) match(input, USER_VAR,
						FOLLOW_USER_VAR_in_simple_expr8317);
				if (state.failed)
					return retval;
				if (state.backtracking == 0) {
					USER_VAR1262_tree = (Object) adaptor.create(USER_VAR1262);
					adaptor.addChild(root_0, USER_VAR1262_tree);
				}

			}
				break;
			case 5:
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:936:4:
			// expression_list
			{
				root_0 = (Object) adaptor.nil();

				pushFollow(FOLLOW_expression_list_in_simple_expr8322);
				expression_list1263 = expression_list();

				state._fsp--;
				if (state.failed)
					return retval;
				if (state.backtracking == 0)
					adaptor.addChild(root_0, expression_list1263.getTree());

			}
				break;
			case 6:
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:937:4: ( ROW_SYM
			// expression_list )
			{
				root_0 = (Object) adaptor.nil();

				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:937:4: ( ROW_SYM
				// expression_list )
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:937:5: ROW_SYM
				// expression_list
				{
					ROW_SYM1264 = (Token) match(input, ROW_SYM,
							FOLLOW_ROW_SYM_in_simple_expr8328);
					if (state.failed)
						return retval;
					if (state.backtracking == 0) {
						ROW_SYM1264_tree = (Object) adaptor.create(ROW_SYM1264);
						adaptor.addChild(root_0, ROW_SYM1264_tree);
					}
					pushFollow(FOLLOW_expression_list_in_simple_expr8330);
					expression_list1265 = expression_list();

					state._fsp--;
					if (state.failed)
						return retval;
					if (state.backtracking == 0)
						adaptor.addChild(root_0, expression_list1265.getTree());

				}

			}
				break;
			case 7:
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:938:4: subquery
			{
				root_0 = (Object) adaptor.nil();

				pushFollow(FOLLOW_subquery_in_simple_expr8336);
				subquery1266 = subquery();

				state._fsp--;
				if (state.failed)
					return retval;
				if (state.backtracking == 0)
					adaptor.addChild(root_0, subquery1266.getTree());

			}
				break;
			case 8:
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:939:4: EXISTS
			// subquery
			{
				root_0 = (Object) adaptor.nil();

				EXISTS1267 = (Token) match(input, EXISTS,
						FOLLOW_EXISTS_in_simple_expr8341);
				if (state.failed)
					return retval;
				if (state.backtracking == 0) {
					EXISTS1267_tree = (Object) adaptor.create(EXISTS1267);
					adaptor.addChild(root_0, EXISTS1267_tree);
				}
				pushFollow(FOLLOW_subquery_in_simple_expr8343);
				subquery1268 = subquery();

				state._fsp--;
				if (state.failed)
					return retval;
				if (state.backtracking == 0)
					adaptor.addChild(root_0, subquery1268.getTree());

			}
				break;
			case 9:
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:941:4:
			// match_against_statement
			{
				root_0 = (Object) adaptor.nil();

				pushFollow(FOLLOW_match_against_statement_in_simple_expr8350);
				match_against_statement1269 = match_against_statement();

				state._fsp--;
				if (state.failed)
					return retval;
				if (state.backtracking == 0)
					adaptor.addChild(root_0,
							match_against_statement1269.getTree());

			}
				break;
			case 10:
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:942:4:
			// case_when_statement
			{
				root_0 = (Object) adaptor.nil();

				pushFollow(FOLLOW_case_when_statement_in_simple_expr8355);
				case_when_statement1270 = case_when_statement();

				state._fsp--;
				if (state.failed)
					return retval;
				if (state.backtracking == 0)
					adaptor.addChild(root_0, case_when_statement1270.getTree());

			}
				break;
			case 11:
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:943:4: interval_expr
			{
				root_0 = (Object) adaptor.nil();

				pushFollow(FOLLOW_interval_expr_in_simple_expr8360);
				interval_expr1271 = interval_expr();

				state._fsp--;
				if (state.failed)
					return retval;
				if (state.backtracking == 0)
					adaptor.addChild(root_0, interval_expr1271.getTree());

			}
				break;

			}
			retval.stop = input.LT(-1);

			if (state.backtracking == 0) {

				retval.tree = (Object) adaptor.rulePostProcessing(root_0);
				adaptor.setTokenBoundaries(retval.tree, retval.start,
						retval.stop);
			}
		} catch (RecognitionException re) {
			reportError(re);
			recover(input, re);
			retval.tree = (Object) adaptor.errorNode(input, retval.start,
					input.LT(-1), re);

		} finally {
		}
		return retval;
	}

	// $ANTLR end "simple_expr"

	public static class function_call_return extends ParserRuleReturnScope {
		Object tree;

		public Object getTree() {
			return tree;
		}
	};

	// $ANTLR start "function_call"
	// C:\\Users\\grand\\Desktop\\another\\MySQL.g:947:1: function_call : ( (
	// functionList ( LPAREN ( expression ( COMMA expression )* )? RPAREN )? )
	// -> ^( functionList ( expression )* ) | ( CAST_SYM LPAREN expression
	// AS_SYM cast_data_type RPAREN ) -> ^( CAST_SYM expression cast_data_type )
	// | ( CONVERT_SYM LPAREN expression COMMA cast_data_type RPAREN ) -> ^(
	// CONVERT_SYM expression cast_data_type ) | ( CONVERT_SYM LPAREN expression
	// USING_SYM transcoding_name RPAREN ) -> ^( CONVERT_SYM expression
	// transcoding_name ) | ( group_functions LPAREN ( ASTERISK | ALL | DISTINCT
	// )? bit_expr RPAREN ) );
	public final MySQLParser.function_call_return function_call()
			throws RecognitionException {
		MySQLParser.function_call_return retval = new MySQLParser.function_call_return();
		retval.start = input.LT(1);

		Object root_0 = null;

		Token LPAREN1273 = null;
		Token COMMA1275 = null;
		Token RPAREN1277 = null;
		Token CAST_SYM1278 = null;
		Token LPAREN1279 = null;
		Token AS_SYM1281 = null;
		Token RPAREN1283 = null;
		Token CONVERT_SYM1284 = null;
		Token LPAREN1285 = null;
		Token COMMA1287 = null;
		Token RPAREN1289 = null;
		Token CONVERT_SYM1290 = null;
		Token LPAREN1291 = null;
		Token USING_SYM1293 = null;
		Token RPAREN1295 = null;
		Token LPAREN1297 = null;
		Token ASTERISK1298 = null;
		Token ALL1299 = null;
		Token DISTINCT1300 = null;
		Token RPAREN1302 = null;
		MySQLParser.functionList_return functionList1272 = null;

		MySQLParser.expression_return expression1274 = null;

		MySQLParser.expression_return expression1276 = null;

		MySQLParser.expression_return expression1280 = null;

		MySQLParser.cast_data_type_return cast_data_type1282 = null;

		MySQLParser.expression_return expression1286 = null;

		MySQLParser.cast_data_type_return cast_data_type1288 = null;

		MySQLParser.expression_return expression1292 = null;

		MySQLParser.transcoding_name_return transcoding_name1294 = null;

		MySQLParser.group_functions_return group_functions1296 = null;

		MySQLParser.bit_expr_return bit_expr1301 = null;

		Object LPAREN1273_tree = null;
		Object COMMA1275_tree = null;
		Object RPAREN1277_tree = null;
		Object CAST_SYM1278_tree = null;
		Object LPAREN1279_tree = null;
		Object AS_SYM1281_tree = null;
		Object RPAREN1283_tree = null;
		Object CONVERT_SYM1284_tree = null;
		Object LPAREN1285_tree = null;
		Object COMMA1287_tree = null;
		Object RPAREN1289_tree = null;
		Object CONVERT_SYM1290_tree = null;
		Object LPAREN1291_tree = null;
		Object USING_SYM1293_tree = null;
		Object RPAREN1295_tree = null;
		Object LPAREN1297_tree = null;
		Object ASTERISK1298_tree = null;
		Object ALL1299_tree = null;
		Object DISTINCT1300_tree = null;
		Object RPAREN1302_tree = null;
		RewriteRuleTokenStream stream_CONVERT_SYM = new RewriteRuleTokenStream(
				adaptor, "token CONVERT_SYM");
		RewriteRuleTokenStream stream_RPAREN = new RewriteRuleTokenStream(
				adaptor, "token RPAREN");
		RewriteRuleTokenStream stream_AS_SYM = new RewriteRuleTokenStream(
				adaptor, "token AS_SYM");
		RewriteRuleTokenStream stream_CAST_SYM = new RewriteRuleTokenStream(
				adaptor, "token CAST_SYM");
		RewriteRuleTokenStream stream_USING_SYM = new RewriteRuleTokenStream(
				adaptor, "token USING_SYM");
		RewriteRuleTokenStream stream_COMMA = new RewriteRuleTokenStream(
				adaptor, "token COMMA");
		RewriteRuleTokenStream stream_LPAREN = new RewriteRuleTokenStream(
				adaptor, "token LPAREN");
		RewriteRuleSubtreeStream stream_expression = new RewriteRuleSubtreeStream(
				adaptor, "rule expression");
		RewriteRuleSubtreeStream stream_cast_data_type = new RewriteRuleSubtreeStream(
				adaptor, "rule cast_data_type");
		RewriteRuleSubtreeStream stream_transcoding_name = new RewriteRuleSubtreeStream(
				adaptor, "rule transcoding_name");
		RewriteRuleSubtreeStream stream_functionList = new RewriteRuleSubtreeStream(
				adaptor, "rule functionList");
		try {
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:947:14: ( (
			// functionList ( LPAREN ( expression ( COMMA expression )* )?
			// RPAREN )? ) -> ^( functionList ( expression )* ) | ( CAST_SYM
			// LPAREN expression AS_SYM cast_data_type RPAREN ) -> ^( CAST_SYM
			// expression cast_data_type ) | ( CONVERT_SYM LPAREN expression
			// COMMA cast_data_type RPAREN ) -> ^( CONVERT_SYM expression
			// cast_data_type ) | ( CONVERT_SYM LPAREN expression USING_SYM
			// transcoding_name RPAREN ) -> ^( CONVERT_SYM expression
			// transcoding_name ) | ( group_functions LPAREN ( ASTERISK | ALL |
			// DISTINCT )? bit_expr RPAREN ) )
			int alt454 = 5;
			alt454 = dfa454.predict(input);
			switch (alt454) {
			case 1:
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:948:4: ( functionList
			// ( LPAREN ( expression ( COMMA expression )* )? RPAREN )? )
			{
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:948:4: (
				// functionList ( LPAREN ( expression ( COMMA expression )* )?
				// RPAREN )? )
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:948:7:
				// functionList ( LPAREN ( expression ( COMMA expression )* )?
				// RPAREN )?
				{
					pushFollow(FOLLOW_functionList_in_function_call8375);
					functionList1272 = functionList();

					state._fsp--;
					if (state.failed)
						return retval;
					if (state.backtracking == 0)
						stream_functionList.add(functionList1272.getTree());
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:948:20: (
					// LPAREN ( expression ( COMMA expression )* )? RPAREN )?
					int alt452 = 2;
					int LA452_0 = input.LA(1);

					if ((LA452_0 == LPAREN)) {
						alt452 = 1;
					}
					switch (alt452) {
					case 1:
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:948:22:
					// LPAREN ( expression ( COMMA expression )* )? RPAREN
					{
						LPAREN1273 = (Token) match(input, LPAREN,
								FOLLOW_LPAREN_in_function_call8379);
						if (state.failed)
							return retval;
						if (state.backtracking == 0)
							stream_LPAREN.add(LPAREN1273);

						// C:\\Users\\grand\\Desktop\\another\\MySQL.g:948:29: (
						// expression ( COMMA expression )* )?
						int alt451 = 2;
						int LA451_0 = input.LA(1);

						if ((LA451_0 == INTEGER_NUM
								|| LA451_0 == LPAREN
								|| LA451_0 == INSERT
								|| LA451_0 == VALUES
								|| LA451_0 == DEFAULT
								|| (LA451_0 >= IF && LA451_0 <= EXISTS)
								|| LA451_0 == TEXT_STRING
								|| LA451_0 == NULL_SYM
								|| (LA451_0 >= DATE_SYM && LA451_0 <= TIMESTAMP)
								|| (LA451_0 >= YEAR && LA451_0 <= CHAR)
								|| LA451_0 == BINARY || LA451_0 == MATCH
								|| LA451_0 == PASSWORD
								|| LA451_0 == CONVERT_SYM
								|| LA451_0 == TRUNCATE || LA451_0 == REPLACE
								|| LA451_0 == CURRENT_USER
								|| LA451_0 == ASCII_SYM
								|| (LA451_0 >= SECOND && LA451_0 <= HOUR)
								|| (LA451_0 >= WEEK && LA451_0 <= QUARTER)
								|| (LA451_0 >= PLUS && LA451_0 <= ID)
								|| (LA451_0 >= NEGATION && LA451_0 <= CASE_SYM) || LA451_0 == INTERVAL_SYM)) {
							alt451 = 1;
						}
						switch (alt451) {
						case 1:
						// C:\\Users\\grand\\Desktop\\another\\MySQL.g:948:30:
						// expression ( COMMA expression )*
						{
							pushFollow(FOLLOW_expression_in_function_call8382);
							expression1274 = expression();

							state._fsp--;
							if (state.failed)
								return retval;
							if (state.backtracking == 0)
								stream_expression.add(expression1274.getTree());
							// C:\\Users\\grand\\Desktop\\another\\MySQL.g:948:41:
							// ( COMMA expression )*
							loop450: do {
								int alt450 = 2;
								int LA450_0 = input.LA(1);

								if ((LA450_0 == COMMA)) {
									alt450 = 1;
								}

								switch (alt450) {
								case 1:
								// C:\\Users\\grand\\Desktop\\another\\MySQL.g:948:42:
								// COMMA expression
								{
									COMMA1275 = (Token) match(input, COMMA,
											FOLLOW_COMMA_in_function_call8385);
									if (state.failed)
										return retval;
									if (state.backtracking == 0)
										stream_COMMA.add(COMMA1275);

									pushFollow(FOLLOW_expression_in_function_call8387);
									expression1276 = expression();

									state._fsp--;
									if (state.failed)
										return retval;
									if (state.backtracking == 0)
										stream_expression.add(expression1276
												.getTree());

								}
									break;

								default:
									break loop450;
								}
							} while (true);

						}
							break;

						}

						RPAREN1277 = (Token) match(input, RPAREN,
								FOLLOW_RPAREN_in_function_call8393);
						if (state.failed)
							return retval;
						if (state.backtracking == 0)
							stream_RPAREN.add(RPAREN1277);

					}
						break;

					}

				}

				// AST REWRITE
				// elements: expression, functionList
				// token labels:
				// rule labels: retval
				// token list labels:
				// rule list labels:
				// wildcard labels:
				if (state.backtracking == 0) {
					retval.tree = root_0;
					RewriteRuleSubtreeStream stream_retval = new RewriteRuleSubtreeStream(
							adaptor, "rule retval",
							retval != null ? retval.tree : null);

					root_0 = (Object) adaptor.nil();
					// 948:76: -> ^( functionList ( expression )* )
					{
						// C:\\Users\\grand\\Desktop\\another\\MySQL.g:948:78:
						// ^( functionList ( expression )* )
						{
							Object root_1 = (Object) adaptor.nil();
							root_1 = (Object) adaptor.becomeRoot(
									stream_functionList.nextNode(), root_1);

							// C:\\Users\\grand\\Desktop\\another\\MySQL.g:948:93:
							// ( expression )*
							while (stream_expression.hasNext()) {
								adaptor.addChild(root_1,
										stream_expression.nextTree());

							}
							stream_expression.reset();

							adaptor.addChild(root_0, root_1);
						}

					}

					retval.tree = root_0;
				}
			}
				break;
			case 2:
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:949:4: ( CAST_SYM
			// LPAREN expression AS_SYM cast_data_type RPAREN )
			{
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:949:4: ( CAST_SYM
				// LPAREN expression AS_SYM cast_data_type RPAREN )
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:949:7: CAST_SYM
				// LPAREN expression AS_SYM cast_data_type RPAREN
				{
					CAST_SYM1278 = (Token) match(input, CAST_SYM,
							FOLLOW_CAST_SYM_in_function_call8415);
					if (state.failed)
						return retval;
					if (state.backtracking == 0)
						stream_CAST_SYM.add(CAST_SYM1278);

					LPAREN1279 = (Token) match(input, LPAREN,
							FOLLOW_LPAREN_in_function_call8417);
					if (state.failed)
						return retval;
					if (state.backtracking == 0)
						stream_LPAREN.add(LPAREN1279);

					pushFollow(FOLLOW_expression_in_function_call8419);
					expression1280 = expression();

					state._fsp--;
					if (state.failed)
						return retval;
					if (state.backtracking == 0)
						stream_expression.add(expression1280.getTree());
					AS_SYM1281 = (Token) match(input, AS_SYM,
							FOLLOW_AS_SYM_in_function_call8421);
					if (state.failed)
						return retval;
					if (state.backtracking == 0)
						stream_AS_SYM.add(AS_SYM1281);

					pushFollow(FOLLOW_cast_data_type_in_function_call8423);
					cast_data_type1282 = cast_data_type();

					state._fsp--;
					if (state.failed)
						return retval;
					if (state.backtracking == 0)
						stream_cast_data_type.add(cast_data_type1282.getTree());
					RPAREN1283 = (Token) match(input, RPAREN,
							FOLLOW_RPAREN_in_function_call8425);
					if (state.failed)
						return retval;
					if (state.backtracking == 0)
						stream_RPAREN.add(RPAREN1283);

				}

				// AST REWRITE
				// elements: CAST_SYM, expression, cast_data_type
				// token labels:
				// rule labels: retval
				// token list labels:
				// rule list labels:
				// wildcard labels:
				if (state.backtracking == 0) {
					retval.tree = root_0;
					RewriteRuleSubtreeStream stream_retval = new RewriteRuleSubtreeStream(
							adaptor, "rule retval",
							retval != null ? retval.tree : null);

					root_0 = (Object) adaptor.nil();
					// 949:66: -> ^( CAST_SYM expression cast_data_type )
					{
						// C:\\Users\\grand\\Desktop\\another\\MySQL.g:949:68:
						// ^( CAST_SYM expression cast_data_type )
						{
							Object root_1 = (Object) adaptor.nil();
							root_1 = (Object) adaptor.becomeRoot(
									stream_CAST_SYM.nextNode(), root_1);

							adaptor.addChild(root_1,
									stream_expression.nextTree());
							adaptor.addChild(root_1,
									stream_cast_data_type.nextTree());

							adaptor.addChild(root_0, root_1);
						}

					}

					retval.tree = root_0;
				}
			}
				break;
			case 3:
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:950:4: ( CONVERT_SYM
			// LPAREN expression COMMA cast_data_type RPAREN )
			{
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:950:4: (
				// CONVERT_SYM LPAREN expression COMMA cast_data_type RPAREN )
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:950:7:
				// CONVERT_SYM LPAREN expression COMMA cast_data_type RPAREN
				{
					CONVERT_SYM1284 = (Token) match(input, CONVERT_SYM,
							FOLLOW_CONVERT_SYM_in_function_call8445);
					if (state.failed)
						return retval;
					if (state.backtracking == 0)
						stream_CONVERT_SYM.add(CONVERT_SYM1284);

					LPAREN1285 = (Token) match(input, LPAREN,
							FOLLOW_LPAREN_in_function_call8447);
					if (state.failed)
						return retval;
					if (state.backtracking == 0)
						stream_LPAREN.add(LPAREN1285);

					pushFollow(FOLLOW_expression_in_function_call8449);
					expression1286 = expression();

					state._fsp--;
					if (state.failed)
						return retval;
					if (state.backtracking == 0)
						stream_expression.add(expression1286.getTree());
					COMMA1287 = (Token) match(input, COMMA,
							FOLLOW_COMMA_in_function_call8451);
					if (state.failed)
						return retval;
					if (state.backtracking == 0)
						stream_COMMA.add(COMMA1287);

					pushFollow(FOLLOW_cast_data_type_in_function_call8453);
					cast_data_type1288 = cast_data_type();

					state._fsp--;
					if (state.failed)
						return retval;
					if (state.backtracking == 0)
						stream_cast_data_type.add(cast_data_type1288.getTree());
					RPAREN1289 = (Token) match(input, RPAREN,
							FOLLOW_RPAREN_in_function_call8455);
					if (state.failed)
						return retval;
					if (state.backtracking == 0)
						stream_RPAREN.add(RPAREN1289);

				}

				// AST REWRITE
				// elements: cast_data_type, expression, CONVERT_SYM
				// token labels:
				// rule labels: retval
				// token list labels:
				// rule list labels:
				// wildcard labels:
				if (state.backtracking == 0) {
					retval.tree = root_0;
					RewriteRuleSubtreeStream stream_retval = new RewriteRuleSubtreeStream(
							adaptor, "rule retval",
							retval != null ? retval.tree : null);

					root_0 = (Object) adaptor.nil();
					// 950:68: -> ^( CONVERT_SYM expression cast_data_type )
					{
						// C:\\Users\\grand\\Desktop\\another\\MySQL.g:950:70:
						// ^( CONVERT_SYM expression cast_data_type )
						{
							Object root_1 = (Object) adaptor.nil();
							root_1 = (Object) adaptor.becomeRoot(
									stream_CONVERT_SYM.nextNode(), root_1);

							adaptor.addChild(root_1,
									stream_expression.nextTree());
							adaptor.addChild(root_1,
									stream_cast_data_type.nextTree());

							adaptor.addChild(root_0, root_1);
						}

					}

					retval.tree = root_0;
				}
			}
				break;
			case 4:
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:951:4: ( CONVERT_SYM
			// LPAREN expression USING_SYM transcoding_name RPAREN )
			{
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:951:4: (
				// CONVERT_SYM LPAREN expression USING_SYM transcoding_name
				// RPAREN )
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:951:7:
				// CONVERT_SYM LPAREN expression USING_SYM transcoding_name
				// RPAREN
				{
					CONVERT_SYM1290 = (Token) match(input, CONVERT_SYM,
							FOLLOW_CONVERT_SYM_in_function_call8475);
					if (state.failed)
						return retval;
					if (state.backtracking == 0)
						stream_CONVERT_SYM.add(CONVERT_SYM1290);

					LPAREN1291 = (Token) match(input, LPAREN,
							FOLLOW_LPAREN_in_function_call8477);
					if (state.failed)
						return retval;
					if (state.backtracking == 0)
						stream_LPAREN.add(LPAREN1291);

					pushFollow(FOLLOW_expression_in_function_call8479);
					expression1292 = expression();

					state._fsp--;
					if (state.failed)
						return retval;
					if (state.backtracking == 0)
						stream_expression.add(expression1292.getTree());
					USING_SYM1293 = (Token) match(input, USING_SYM,
							FOLLOW_USING_SYM_in_function_call8481);
					if (state.failed)
						return retval;
					if (state.backtracking == 0)
						stream_USING_SYM.add(USING_SYM1293);

					pushFollow(FOLLOW_transcoding_name_in_function_call8483);
					transcoding_name1294 = transcoding_name();

					state._fsp--;
					if (state.failed)
						return retval;
					if (state.backtracking == 0)
						stream_transcoding_name.add(transcoding_name1294
								.getTree());
					RPAREN1295 = (Token) match(input, RPAREN,
							FOLLOW_RPAREN_in_function_call8485);
					if (state.failed)
						return retval;
					if (state.backtracking == 0)
						stream_RPAREN.add(RPAREN1295);

				}

				// AST REWRITE
				// elements: expression, transcoding_name, CONVERT_SYM
				// token labels:
				// rule labels: retval
				// token list labels:
				// rule list labels:
				// wildcard labels:
				if (state.backtracking == 0) {
					retval.tree = root_0;
					RewriteRuleSubtreeStream stream_retval = new RewriteRuleSubtreeStream(
							adaptor, "rule retval",
							retval != null ? retval.tree : null);

					root_0 = (Object) adaptor.nil();
					// 951:73: -> ^( CONVERT_SYM expression transcoding_name )
					{
						// C:\\Users\\grand\\Desktop\\another\\MySQL.g:951:75:
						// ^( CONVERT_SYM expression transcoding_name )
						{
							Object root_1 = (Object) adaptor.nil();
							root_1 = (Object) adaptor.becomeRoot(
									stream_CONVERT_SYM.nextNode(), root_1);

							adaptor.addChild(root_1,
									stream_expression.nextTree());
							adaptor.addChild(root_1,
									stream_transcoding_name.nextTree());

							adaptor.addChild(root_0, root_1);
						}

					}

					retval.tree = root_0;
				}
			}
				break;
			case 5:
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:952:4: (
			// group_functions LPAREN ( ASTERISK | ALL | DISTINCT )? bit_expr
			// RPAREN )
			{
				root_0 = (Object) adaptor.nil();

				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:952:4: (
				// group_functions LPAREN ( ASTERISK | ALL | DISTINCT )?
				// bit_expr RPAREN )
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:952:7:
				// group_functions LPAREN ( ASTERISK | ALL | DISTINCT )?
				// bit_expr RPAREN
				{
					pushFollow(FOLLOW_group_functions_in_function_call8504);
					group_functions1296 = group_functions();

					state._fsp--;
					if (state.failed)
						return retval;
					if (state.backtracking == 0)
						root_0 = (Object) adaptor.becomeRoot(
								group_functions1296.getTree(), root_0);
					LPAREN1297 = (Token) match(input, LPAREN,
							FOLLOW_LPAREN_in_function_call8507);
					if (state.failed)
						return retval;
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:952:32: (
					// ASTERISK | ALL | DISTINCT )?
					int alt453 = 4;
					switch (input.LA(1)) {
					case ASTERISK: {
						alt453 = 1;
					}
						break;
					case ALL: {
						alt453 = 2;
					}
						break;
					case DISTINCT: {
						alt453 = 3;
					}
						break;
					}

					switch (alt453) {
					case 1:
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:952:34:
					// ASTERISK
					{
						ASTERISK1298 = (Token) match(input, ASTERISK,
								FOLLOW_ASTERISK_in_function_call8512);
						if (state.failed)
							return retval;
						if (state.backtracking == 0) {
							ASTERISK1298_tree = (Object) adaptor
									.create(ASTERISK1298);
							root_0 = (Object) adaptor.becomeRoot(
									ASTERISK1298_tree, root_0);
						}

					}
						break;
					case 2:
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:952:46: ALL
					{
						ALL1299 = (Token) match(input, ALL,
								FOLLOW_ALL_in_function_call8517);
						if (state.failed)
							return retval;
						if (state.backtracking == 0) {
							ALL1299_tree = (Object) adaptor.create(ALL1299);
							root_0 = (Object) adaptor.becomeRoot(ALL1299_tree,
									root_0);
						}

					}
						break;
					case 3:
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:952:53:
					// DISTINCT
					{
						DISTINCT1300 = (Token) match(input, DISTINCT,
								FOLLOW_DISTINCT_in_function_call8522);
						if (state.failed)
							return retval;
						if (state.backtracking == 0) {
							DISTINCT1300_tree = (Object) adaptor
									.create(DISTINCT1300);
							root_0 = (Object) adaptor.becomeRoot(
									DISTINCT1300_tree, root_0);
						}

					}
						break;

					}

					pushFollow(FOLLOW_bit_expr_in_function_call8528);
					bit_expr1301 = bit_expr();

					state._fsp--;
					if (state.failed)
						return retval;
					if (state.backtracking == 0)
						adaptor.addChild(root_0, bit_expr1301.getTree());
					RPAREN1302 = (Token) match(input, RPAREN,
							FOLLOW_RPAREN_in_function_call8530);
					if (state.failed)
						return retval;

				}

			}
				break;

			}
			retval.stop = input.LT(-1);

			if (state.backtracking == 0) {

				retval.tree = (Object) adaptor.rulePostProcessing(root_0);
				adaptor.setTokenBoundaries(retval.tree, retval.start,
						retval.stop);
			}
		} catch (RecognitionException re) {
			reportError(re);
			recover(input, re);
			retval.tree = (Object) adaptor.errorNode(input, retval.start,
					input.LT(-1), re);

		} finally {
		}
		return retval;
	}

	// $ANTLR end "function_call"

	public static class case_when_statement_return extends
			ParserRuleReturnScope {
		Object tree;

		public Object getTree() {
			return tree;
		}
	};

	// $ANTLR start "case_when_statement"
	// C:\\Users\\grand\\Desktop\\another\\MySQL.g:955:1: case_when_statement :
	// ( case_when_statement1 | case_when_statement2 );
	public final MySQLParser.case_when_statement_return case_when_statement()
			throws RecognitionException {
		MySQLParser.case_when_statement_return retval = new MySQLParser.case_when_statement_return();
		retval.start = input.LT(1);

		Object root_0 = null;

		MySQLParser.case_when_statement1_return case_when_statement11303 = null;

		MySQLParser.case_when_statement2_return case_when_statement21304 = null;

		try {
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:955:20: (
			// case_when_statement1 | case_when_statement2 )
			int alt455 = 2;
			int LA455_0 = input.LA(1);

			if ((LA455_0 == CASE_SYM)) {
				int LA455_1 = input.LA(2);

				if ((LA455_1 == INTEGER_NUM || LA455_1 == LPAREN
						|| LA455_1 == INSERT || LA455_1 == VALUES
						|| LA455_1 == DEFAULT || LA455_1 == IF
						|| LA455_1 == EXISTS || LA455_1 == TEXT_STRING
						|| LA455_1 == NULL_SYM
						|| (LA455_1 >= DATE_SYM && LA455_1 <= TIMESTAMP)
						|| (LA455_1 >= YEAR && LA455_1 <= CHAR)
						|| LA455_1 == BINARY || LA455_1 == MATCH
						|| LA455_1 == PASSWORD || LA455_1 == CONVERT_SYM
						|| LA455_1 == TRUNCATE || LA455_1 == REPLACE
						|| LA455_1 == CURRENT_USER || LA455_1 == ASCII_SYM
						|| (LA455_1 >= SECOND && LA455_1 <= HOUR)
						|| (LA455_1 >= WEEK && LA455_1 <= QUARTER)
						|| (LA455_1 >= PLUS && LA455_1 <= ID)
						|| (LA455_1 >= NEGATION && LA455_1 <= CASE_SYM) || LA455_1 == INTERVAL_SYM)) {
					alt455 = 2;
				} else if ((LA455_1 == WHEN_SYM)) {
					alt455 = 1;
				} else {
					if (state.backtracking > 0) {
						state.failed = true;
						return retval;
					}
					NoViableAltException nvae = new NoViableAltException("",
							455, 1, input);

					throw nvae;
				}
			} else {
				if (state.backtracking > 0) {
					state.failed = true;
					return retval;
				}
				NoViableAltException nvae = new NoViableAltException("", 455,
						0, input);

				throw nvae;
			}
			switch (alt455) {
			case 1:
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:956:9:
			// case_when_statement1
			{
				root_0 = (Object) adaptor.nil();

				pushFollow(FOLLOW_case_when_statement1_in_case_when_statement8550);
				case_when_statement11303 = case_when_statement1();

				state._fsp--;
				if (state.failed)
					return retval;
				if (state.backtracking == 0)
					adaptor.addChild(root_0, case_when_statement11303.getTree());

			}
				break;
			case 2:
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:956:32:
			// case_when_statement2
			{
				root_0 = (Object) adaptor.nil();

				pushFollow(FOLLOW_case_when_statement2_in_case_when_statement8554);
				case_when_statement21304 = case_when_statement2();

				state._fsp--;
				if (state.failed)
					return retval;
				if (state.backtracking == 0)
					adaptor.addChild(root_0, case_when_statement21304.getTree());

			}
				break;

			}
			retval.stop = input.LT(-1);

			if (state.backtracking == 0) {

				retval.tree = (Object) adaptor.rulePostProcessing(root_0);
				adaptor.setTokenBoundaries(retval.tree, retval.start,
						retval.stop);
			}
		} catch (RecognitionException re) {
			reportError(re);
			recover(input, re);
			retval.tree = (Object) adaptor.errorNode(input, retval.start,
					input.LT(-1), re);

		} finally {
		}
		return retval;
	}

	// $ANTLR end "case_when_statement"

	public static class case_when_statement1_return extends
			ParserRuleReturnScope {
		Object tree;

		public Object getTree() {
			return tree;
		}
	};

	// $ANTLR start "case_when_statement1"
	// C:\\Users\\grand\\Desktop\\another\\MySQL.g:958:1: case_when_statement1 :
	// CASE_SYM ( WHEN_SYM expression THEN_SYM bit_expr )+ ( ELSE_SYM bit_expr
	// )? END_SYM ;
	public final MySQLParser.case_when_statement1_return case_when_statement1()
			throws RecognitionException {
		MySQLParser.case_when_statement1_return retval = new MySQLParser.case_when_statement1_return();
		retval.start = input.LT(1);

		Object root_0 = null;

		Token CASE_SYM1305 = null;
		Token WHEN_SYM1306 = null;
		Token THEN_SYM1308 = null;
		Token ELSE_SYM1310 = null;
		Token END_SYM1312 = null;
		MySQLParser.expression_return expression1307 = null;

		MySQLParser.bit_expr_return bit_expr1309 = null;

		MySQLParser.bit_expr_return bit_expr1311 = null;

		Object CASE_SYM1305_tree = null;
		Object WHEN_SYM1306_tree = null;
		Object THEN_SYM1308_tree = null;
		Object ELSE_SYM1310_tree = null;
		Object END_SYM1312_tree = null;

		try {
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:958:21: ( CASE_SYM (
			// WHEN_SYM expression THEN_SYM bit_expr )+ ( ELSE_SYM bit_expr )?
			// END_SYM )
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:959:9: CASE_SYM (
			// WHEN_SYM expression THEN_SYM bit_expr )+ ( ELSE_SYM bit_expr )?
			// END_SYM
			{
				root_0 = (Object) adaptor.nil();

				CASE_SYM1305 = (Token) match(input, CASE_SYM,
						FOLLOW_CASE_SYM_in_case_when_statement18569);
				if (state.failed)
					return retval;
				if (state.backtracking == 0) {
					CASE_SYM1305_tree = (Object) adaptor.create(CASE_SYM1305);
					adaptor.addChild(root_0, CASE_SYM1305_tree);
				}
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:960:9: ( WHEN_SYM
				// expression THEN_SYM bit_expr )+
				int cnt456 = 0;
				loop456: do {
					int alt456 = 2;
					int LA456_0 = input.LA(1);

					if ((LA456_0 == WHEN_SYM)) {
						alt456 = 1;
					}

					switch (alt456) {
					case 1:
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:960:11:
					// WHEN_SYM expression THEN_SYM bit_expr
					{
						WHEN_SYM1306 = (Token) match(input, WHEN_SYM,
								FOLLOW_WHEN_SYM_in_case_when_statement18581);
						if (state.failed)
							return retval;
						if (state.backtracking == 0) {
							WHEN_SYM1306_tree = (Object) adaptor
									.create(WHEN_SYM1306);
							adaptor.addChild(root_0, WHEN_SYM1306_tree);
						}
						pushFollow(FOLLOW_expression_in_case_when_statement18583);
						expression1307 = expression();

						state._fsp--;
						if (state.failed)
							return retval;
						if (state.backtracking == 0)
							adaptor.addChild(root_0, expression1307.getTree());
						THEN_SYM1308 = (Token) match(input, THEN_SYM,
								FOLLOW_THEN_SYM_in_case_when_statement18585);
						if (state.failed)
							return retval;
						if (state.backtracking == 0) {
							THEN_SYM1308_tree = (Object) adaptor
									.create(THEN_SYM1308);
							adaptor.addChild(root_0, THEN_SYM1308_tree);
						}
						pushFollow(FOLLOW_bit_expr_in_case_when_statement18587);
						bit_expr1309 = bit_expr();

						state._fsp--;
						if (state.failed)
							return retval;
						if (state.backtracking == 0)
							adaptor.addChild(root_0, bit_expr1309.getTree());

					}
						break;

					default:
						if (cnt456 >= 1)
							break loop456;
						if (state.backtracking > 0) {
							state.failed = true;
							return retval;
						}
						EarlyExitException eee = new EarlyExitException(456,
								input);
						throw eee;
					}
					cnt456++;
				} while (true);

				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:961:9: ( ELSE_SYM
				// bit_expr )?
				int alt457 = 2;
				int LA457_0 = input.LA(1);

				if ((LA457_0 == ELSE_SYM)) {
					alt457 = 1;
				}
				switch (alt457) {
				case 1:
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:961:11: ELSE_SYM
				// bit_expr
				{
					ELSE_SYM1310 = (Token) match(input, ELSE_SYM,
							FOLLOW_ELSE_SYM_in_case_when_statement18602);
					if (state.failed)
						return retval;
					if (state.backtracking == 0) {
						ELSE_SYM1310_tree = (Object) adaptor
								.create(ELSE_SYM1310);
						adaptor.addChild(root_0, ELSE_SYM1310_tree);
					}
					pushFollow(FOLLOW_bit_expr_in_case_when_statement18604);
					bit_expr1311 = bit_expr();

					state._fsp--;
					if (state.failed)
						return retval;
					if (state.backtracking == 0)
						adaptor.addChild(root_0, bit_expr1311.getTree());

				}
					break;

				}

				END_SYM1312 = (Token) match(input, END_SYM,
						FOLLOW_END_SYM_in_case_when_statement18617);
				if (state.failed)
					return retval;
				if (state.backtracking == 0) {
					END_SYM1312_tree = (Object) adaptor.create(END_SYM1312);
					adaptor.addChild(root_0, END_SYM1312_tree);
				}

			}

			retval.stop = input.LT(-1);

			if (state.backtracking == 0) {

				retval.tree = (Object) adaptor.rulePostProcessing(root_0);
				adaptor.setTokenBoundaries(retval.tree, retval.start,
						retval.stop);
			}
		} catch (RecognitionException re) {
			reportError(re);
			recover(input, re);
			retval.tree = (Object) adaptor.errorNode(input, retval.start,
					input.LT(-1), re);

		} finally {
		}
		return retval;
	}

	// $ANTLR end "case_when_statement1"

	public static class case_when_statement2_return extends
			ParserRuleReturnScope {
		Object tree;

		public Object getTree() {
			return tree;
		}
	};

	// $ANTLR start "case_when_statement2"
	// C:\\Users\\grand\\Desktop\\another\\MySQL.g:964:1: case_when_statement2 :
	// CASE_SYM bit_expr ( WHEN_SYM bit_expr THEN_SYM bit_expr )+ ( ELSE_SYM
	// bit_expr )? END_SYM ;
	public final MySQLParser.case_when_statement2_return case_when_statement2()
			throws RecognitionException {
		MySQLParser.case_when_statement2_return retval = new MySQLParser.case_when_statement2_return();
		retval.start = input.LT(1);

		Object root_0 = null;

		Token CASE_SYM1313 = null;
		Token WHEN_SYM1315 = null;
		Token THEN_SYM1317 = null;
		Token ELSE_SYM1319 = null;
		Token END_SYM1321 = null;
		MySQLParser.bit_expr_return bit_expr1314 = null;

		MySQLParser.bit_expr_return bit_expr1316 = null;

		MySQLParser.bit_expr_return bit_expr1318 = null;

		MySQLParser.bit_expr_return bit_expr1320 = null;

		Object CASE_SYM1313_tree = null;
		Object WHEN_SYM1315_tree = null;
		Object THEN_SYM1317_tree = null;
		Object ELSE_SYM1319_tree = null;
		Object END_SYM1321_tree = null;

		try {
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:964:21: ( CASE_SYM
			// bit_expr ( WHEN_SYM bit_expr THEN_SYM bit_expr )+ ( ELSE_SYM
			// bit_expr )? END_SYM )
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:965:9: CASE_SYM
			// bit_expr ( WHEN_SYM bit_expr THEN_SYM bit_expr )+ ( ELSE_SYM
			// bit_expr )? END_SYM
			{
				root_0 = (Object) adaptor.nil();

				CASE_SYM1313 = (Token) match(input, CASE_SYM,
						FOLLOW_CASE_SYM_in_case_when_statement28632);
				if (state.failed)
					return retval;
				if (state.backtracking == 0) {
					CASE_SYM1313_tree = (Object) adaptor.create(CASE_SYM1313);
					adaptor.addChild(root_0, CASE_SYM1313_tree);
				}
				pushFollow(FOLLOW_bit_expr_in_case_when_statement28634);
				bit_expr1314 = bit_expr();

				state._fsp--;
				if (state.failed)
					return retval;
				if (state.backtracking == 0)
					adaptor.addChild(root_0, bit_expr1314.getTree());
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:966:9: ( WHEN_SYM
				// bit_expr THEN_SYM bit_expr )+
				int cnt458 = 0;
				loop458: do {
					int alt458 = 2;
					int LA458_0 = input.LA(1);

					if ((LA458_0 == WHEN_SYM)) {
						alt458 = 1;
					}

					switch (alt458) {
					case 1:
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:966:11:
					// WHEN_SYM bit_expr THEN_SYM bit_expr
					{
						WHEN_SYM1315 = (Token) match(input, WHEN_SYM,
								FOLLOW_WHEN_SYM_in_case_when_statement28646);
						if (state.failed)
							return retval;
						if (state.backtracking == 0) {
							WHEN_SYM1315_tree = (Object) adaptor
									.create(WHEN_SYM1315);
							adaptor.addChild(root_0, WHEN_SYM1315_tree);
						}
						pushFollow(FOLLOW_bit_expr_in_case_when_statement28648);
						bit_expr1316 = bit_expr();

						state._fsp--;
						if (state.failed)
							return retval;
						if (state.backtracking == 0)
							adaptor.addChild(root_0, bit_expr1316.getTree());
						THEN_SYM1317 = (Token) match(input, THEN_SYM,
								FOLLOW_THEN_SYM_in_case_when_statement28650);
						if (state.failed)
							return retval;
						if (state.backtracking == 0) {
							THEN_SYM1317_tree = (Object) adaptor
									.create(THEN_SYM1317);
							adaptor.addChild(root_0, THEN_SYM1317_tree);
						}
						pushFollow(FOLLOW_bit_expr_in_case_when_statement28652);
						bit_expr1318 = bit_expr();

						state._fsp--;
						if (state.failed)
							return retval;
						if (state.backtracking == 0)
							adaptor.addChild(root_0, bit_expr1318.getTree());

					}
						break;

					default:
						if (cnt458 >= 1)
							break loop458;
						if (state.backtracking > 0) {
							state.failed = true;
							return retval;
						}
						EarlyExitException eee = new EarlyExitException(458,
								input);
						throw eee;
					}
					cnt458++;
				} while (true);

				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:967:9: ( ELSE_SYM
				// bit_expr )?
				int alt459 = 2;
				int LA459_0 = input.LA(1);

				if ((LA459_0 == ELSE_SYM)) {
					alt459 = 1;
				}
				switch (alt459) {
				case 1:
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:967:11: ELSE_SYM
				// bit_expr
				{
					ELSE_SYM1319 = (Token) match(input, ELSE_SYM,
							FOLLOW_ELSE_SYM_in_case_when_statement28667);
					if (state.failed)
						return retval;
					if (state.backtracking == 0) {
						ELSE_SYM1319_tree = (Object) adaptor
								.create(ELSE_SYM1319);
						adaptor.addChild(root_0, ELSE_SYM1319_tree);
					}
					pushFollow(FOLLOW_bit_expr_in_case_when_statement28669);
					bit_expr1320 = bit_expr();

					state._fsp--;
					if (state.failed)
						return retval;
					if (state.backtracking == 0)
						adaptor.addChild(root_0, bit_expr1320.getTree());

				}
					break;

				}

				END_SYM1321 = (Token) match(input, END_SYM,
						FOLLOW_END_SYM_in_case_when_statement28682);
				if (state.failed)
					return retval;
				if (state.backtracking == 0) {
					END_SYM1321_tree = (Object) adaptor.create(END_SYM1321);
					adaptor.addChild(root_0, END_SYM1321_tree);
				}

			}

			retval.stop = input.LT(-1);

			if (state.backtracking == 0) {

				retval.tree = (Object) adaptor.rulePostProcessing(root_0);
				adaptor.setTokenBoundaries(retval.tree, retval.start,
						retval.stop);
			}
		} catch (RecognitionException re) {
			reportError(re);
			recover(input, re);
			retval.tree = (Object) adaptor.errorNode(input, retval.start,
					input.LT(-1), re);

		} finally {
		}
		return retval;
	}

	// $ANTLR end "case_when_statement2"

	public static class match_against_statement_return extends
			ParserRuleReturnScope {
		Object tree;

		public Object getTree() {
			return tree;
		}
	};

	// $ANTLR start "match_against_statement"
	// C:\\Users\\grand\\Desktop\\another\\MySQL.g:971:1:
	// match_against_statement : MATCH ( column_spec ( COMMA column_spec )* )
	// AGAINST ( expression ( search_modifier )? ) ;
	public final MySQLParser.match_against_statement_return match_against_statement()
			throws RecognitionException {
		MySQLParser.match_against_statement_return retval = new MySQLParser.match_against_statement_return();
		retval.start = input.LT(1);

		Object root_0 = null;

		Token MATCH1322 = null;
		Token COMMA1324 = null;
		Token AGAINST1326 = null;
		MySQLParser.column_spec_return column_spec1323 = null;

		MySQLParser.column_spec_return column_spec1325 = null;

		MySQLParser.expression_return expression1327 = null;

		MySQLParser.search_modifier_return search_modifier1328 = null;

		Object MATCH1322_tree = null;
		Object COMMA1324_tree = null;
		Object AGAINST1326_tree = null;

		try {
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:971:24: ( MATCH (
			// column_spec ( COMMA column_spec )* ) AGAINST ( expression (
			// search_modifier )? ) )
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:972:2: MATCH (
			// column_spec ( COMMA column_spec )* ) AGAINST ( expression (
			// search_modifier )? )
			{
				root_0 = (Object) adaptor.nil();

				MATCH1322 = (Token) match(input, MATCH,
						FOLLOW_MATCH_in_match_against_statement8692);
				if (state.failed)
					return retval;
				if (state.backtracking == 0) {
					MATCH1322_tree = (Object) adaptor.create(MATCH1322);
					adaptor.addChild(root_0, MATCH1322_tree);
				}
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:972:8: (
				// column_spec ( COMMA column_spec )* )
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:972:9:
				// column_spec ( COMMA column_spec )*
				{
					pushFollow(FOLLOW_column_spec_in_match_against_statement8695);
					column_spec1323 = column_spec();

					state._fsp--;
					if (state.failed)
						return retval;
					if (state.backtracking == 0)
						adaptor.addChild(root_0, column_spec1323.getTree());
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:972:21: (
					// COMMA column_spec )*
					loop460: do {
						int alt460 = 2;
						int LA460_0 = input.LA(1);

						if ((LA460_0 == COMMA)) {
							alt460 = 1;
						}

						switch (alt460) {
						case 1:
						// C:\\Users\\grand\\Desktop\\another\\MySQL.g:972:22:
						// COMMA column_spec
						{
							COMMA1324 = (Token) match(input, COMMA,
									FOLLOW_COMMA_in_match_against_statement8698);
							if (state.failed)
								return retval;
							if (state.backtracking == 0) {
								COMMA1324_tree = (Object) adaptor
										.create(COMMA1324);
								adaptor.addChild(root_0, COMMA1324_tree);
							}
							pushFollow(FOLLOW_column_spec_in_match_against_statement8700);
							column_spec1325 = column_spec();

							state._fsp--;
							if (state.failed)
								return retval;
							if (state.backtracking == 0)
								adaptor.addChild(root_0,
										column_spec1325.getTree());

						}
							break;

						default:
							break loop460;
						}
					} while (true);

				}

				AGAINST1326 = (Token) match(input, AGAINST,
						FOLLOW_AGAINST_in_match_against_statement8706);
				if (state.failed)
					return retval;
				if (state.backtracking == 0) {
					AGAINST1326_tree = (Object) adaptor.create(AGAINST1326);
					adaptor.addChild(root_0, AGAINST1326_tree);
				}
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:972:52: (
				// expression ( search_modifier )? )
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:972:53:
				// expression ( search_modifier )?
				{
					pushFollow(FOLLOW_expression_in_match_against_statement8709);
					expression1327 = expression();

					state._fsp--;
					if (state.failed)
						return retval;
					if (state.backtracking == 0)
						adaptor.addChild(root_0, expression1327.getTree());
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:972:64: (
					// search_modifier )?
					int alt461 = 2;
					int LA461_0 = input.LA(1);

					if ((LA461_0 == IN_SYM)) {
						int LA461_1 = input.LA(2);

						if ((synpred908_MySQL())) {
							alt461 = 1;
						}
					} else if ((LA461_0 == WITH)) {
						int LA461_2 = input.LA(2);

						if ((synpred908_MySQL())) {
							alt461 = 1;
						}
					}
					switch (alt461) {
					case 1:
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:972:65:
					// search_modifier
					{
						pushFollow(FOLLOW_search_modifier_in_match_against_statement8712);
						search_modifier1328 = search_modifier();

						state._fsp--;
						if (state.failed)
							return retval;
						if (state.backtracking == 0)
							adaptor.addChild(root_0,
									search_modifier1328.getTree());

					}
						break;

					}

				}

			}

			retval.stop = input.LT(-1);

			if (state.backtracking == 0) {

				retval.tree = (Object) adaptor.rulePostProcessing(root_0);
				adaptor.setTokenBoundaries(retval.tree, retval.start,
						retval.stop);
			}
		} catch (RecognitionException re) {
			reportError(re);
			recover(input, re);
			retval.tree = (Object) adaptor.errorNode(input, retval.start,
					input.LT(-1), re);

		} finally {
		}
		return retval;
	}

	// $ANTLR end "match_against_statement"

	public static class column_spec_return extends ParserRuleReturnScope {
		Object tree;

		public Object getTree() {
			return tree;
		}
	};

	// $ANTLR start "column_spec"
	// C:\\Users\\grand\\Desktop\\another\\MySQL.g:975:1: column_spec : ( (
	// schema_name DOT )? table_name DOT )? column_name ;
	public final MySQLParser.column_spec_return column_spec()
			throws RecognitionException {
		MySQLParser.column_spec_return retval = new MySQLParser.column_spec_return();
		retval.start = input.LT(1);

		Object root_0 = null;

		Token DOT1330 = null;
		Token DOT1332 = null;
		MySQLParser.schema_name_return schema_name1329 = null;

		MySQLParser.table_name_return table_name1331 = null;

		MySQLParser.column_name_return column_name1333 = null;

		Object DOT1330_tree = null;
		Object DOT1332_tree = null;

		try {
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:975:12: ( ( (
			// schema_name DOT )? table_name DOT )? column_name )
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:976:2: ( (
			// schema_name DOT )? table_name DOT )? column_name
			{
				root_0 = (Object) adaptor.nil();

				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:976:2: ( (
				// schema_name DOT )? table_name DOT )?
				int alt463 = 2;
				int LA463_0 = input.LA(1);

				if ((LA463_0 == ID)) {
					int LA463_1 = input.LA(2);

					if ((LA463_1 == DOT)) {
						alt463 = 1;
					}
				}
				switch (alt463) {
				case 1:
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:976:4: (
				// schema_name DOT )? table_name DOT
				{
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:976:4: (
					// schema_name DOT )?
					int alt462 = 2;
					int LA462_0 = input.LA(1);

					if ((LA462_0 == ID)) {
						int LA462_1 = input.LA(2);

						if ((LA462_1 == DOT)) {
							int LA462_2 = input.LA(3);

							if ((LA462_2 == ID)) {
								int LA462_3 = input.LA(4);

								if ((LA462_3 == DOT)) {
									alt462 = 1;
								}
							}
						}
					}
					switch (alt462) {
					case 1:
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:976:6:
					// schema_name DOT
					{
						pushFollow(FOLLOW_schema_name_in_column_spec8730);
						schema_name1329 = schema_name();

						state._fsp--;
						if (state.failed)
							return retval;
						if (state.backtracking == 0)
							adaptor.addChild(root_0, schema_name1329.getTree());
						DOT1330 = (Token) match(input, DOT,
								FOLLOW_DOT_in_column_spec8732);
						if (state.failed)
							return retval;
						if (state.backtracking == 0) {
							DOT1330_tree = (Object) adaptor.create(DOT1330);
							adaptor.addChild(root_0, DOT1330_tree);
						}

					}
						break;

					}

					pushFollow(FOLLOW_table_name_in_column_spec8737);
					table_name1331 = table_name();

					state._fsp--;
					if (state.failed)
						return retval;
					if (state.backtracking == 0)
						adaptor.addChild(root_0, table_name1331.getTree());
					DOT1332 = (Token) match(input, DOT,
							FOLLOW_DOT_in_column_spec8739);
					if (state.failed)
						return retval;
					if (state.backtracking == 0) {
						DOT1332_tree = (Object) adaptor.create(DOT1332);
						adaptor.addChild(root_0, DOT1332_tree);
					}

				}
					break;

				}

				pushFollow(FOLLOW_column_name_in_column_spec8744);
				column_name1333 = column_name();

				state._fsp--;
				if (state.failed)
					return retval;
				if (state.backtracking == 0)
					adaptor.addChild(root_0, column_name1333.getTree());

			}

			retval.stop = input.LT(-1);

			if (state.backtracking == 0) {

				retval.tree = (Object) adaptor.rulePostProcessing(root_0);
				adaptor.setTokenBoundaries(retval.tree, retval.start,
						retval.stop);
			}
		} catch (RecognitionException re) {
			reportError(re);
			recover(input, re);
			retval.tree = (Object) adaptor.errorNode(input, retval.start,
					input.LT(-1), re);

		} finally {
		}
		return retval;
	}

	// $ANTLR end "column_spec"

	public static class expression_list_return extends ParserRuleReturnScope {
		Object tree;

		public Object getTree() {
			return tree;
		}
	};

	// $ANTLR start "expression_list"
	// C:\\Users\\grand\\Desktop\\another\\MySQL.g:978:1: expression_list :
	// LPAREN expression ( COMMA expression )* RPAREN ;
	public final MySQLParser.expression_list_return expression_list()
			throws RecognitionException {
		MySQLParser.expression_list_return retval = new MySQLParser.expression_list_return();
		retval.start = input.LT(1);

		Object root_0 = null;

		Token LPAREN1334 = null;
		Token COMMA1336 = null;
		Token RPAREN1338 = null;
		MySQLParser.expression_return expression1335 = null;

		MySQLParser.expression_return expression1337 = null;

		Object LPAREN1334_tree = null;
		Object COMMA1336_tree = null;
		Object RPAREN1338_tree = null;

		try {
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:978:16: ( LPAREN
			// expression ( COMMA expression )* RPAREN )
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:979:2: LPAREN
			// expression ( COMMA expression )* RPAREN
			{
				root_0 = (Object) adaptor.nil();

				LPAREN1334 = (Token) match(input, LPAREN,
						FOLLOW_LPAREN_in_expression_list8753);
				if (state.failed)
					return retval;
				pushFollow(FOLLOW_expression_in_expression_list8756);
				expression1335 = expression();

				state._fsp--;
				if (state.failed)
					return retval;
				if (state.backtracking == 0)
					adaptor.addChild(root_0, expression1335.getTree());
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:979:21: ( COMMA
				// expression )*
				loop464: do {
					int alt464 = 2;
					int LA464_0 = input.LA(1);

					if ((LA464_0 == COMMA)) {
						alt464 = 1;
					}

					switch (alt464) {
					case 1:
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:979:23: COMMA
					// expression
					{
						COMMA1336 = (Token) match(input, COMMA,
								FOLLOW_COMMA_in_expression_list8760);
						if (state.failed)
							return retval;
						pushFollow(FOLLOW_expression_in_expression_list8763);
						expression1337 = expression();

						state._fsp--;
						if (state.failed)
							return retval;
						if (state.backtracking == 0)
							adaptor.addChild(root_0, expression1337.getTree());

					}
						break;

					default:
						break loop464;
					}
				} while (true);

				RPAREN1338 = (Token) match(input, RPAREN,
						FOLLOW_RPAREN_in_expression_list8768);
				if (state.failed)
					return retval;

			}

			retval.stop = input.LT(-1);

			if (state.backtracking == 0) {

				retval.tree = (Object) adaptor.rulePostProcessing(root_0);
				adaptor.setTokenBoundaries(retval.tree, retval.start,
						retval.stop);
			}
		} catch (RecognitionException re) {
			reportError(re);
			recover(input, re);
			retval.tree = (Object) adaptor.errorNode(input, retval.start,
					input.LT(-1), re);

		} finally {
		}
		return retval;
	}

	// $ANTLR end "expression_list"

	public static class interval_expr_return extends ParserRuleReturnScope {
		Object tree;

		public Object getTree() {
			return tree;
		}
	};

	// $ANTLR start "interval_expr"
	// C:\\Users\\grand\\Desktop\\another\\MySQL.g:981:1: interval_expr :
	// INTERVAL_SYM expression interval_unit ;
	public final MySQLParser.interval_expr_return interval_expr()
			throws RecognitionException {
		MySQLParser.interval_expr_return retval = new MySQLParser.interval_expr_return();
		retval.start = input.LT(1);

		Object root_0 = null;

		Token INTERVAL_SYM1339 = null;
		MySQLParser.expression_return expression1340 = null;

		MySQLParser.interval_unit_return interval_unit1341 = null;

		Object INTERVAL_SYM1339_tree = null;

		try {
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:981:14: (
			// INTERVAL_SYM expression interval_unit )
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:982:2: INTERVAL_SYM
			// expression interval_unit
			{
				root_0 = (Object) adaptor.nil();

				INTERVAL_SYM1339 = (Token) match(input, INTERVAL_SYM,
						FOLLOW_INTERVAL_SYM_in_interval_expr8778);
				if (state.failed)
					return retval;
				if (state.backtracking == 0) {
					INTERVAL_SYM1339_tree = (Object) adaptor
							.create(INTERVAL_SYM1339);
					adaptor.addChild(root_0, INTERVAL_SYM1339_tree);
				}
				pushFollow(FOLLOW_expression_in_interval_expr8780);
				expression1340 = expression();

				state._fsp--;
				if (state.failed)
					return retval;
				if (state.backtracking == 0)
					adaptor.addChild(root_0, expression1340.getTree());
				pushFollow(FOLLOW_interval_unit_in_interval_expr8782);
				interval_unit1341 = interval_unit();

				state._fsp--;
				if (state.failed)
					return retval;
				if (state.backtracking == 0)
					adaptor.addChild(root_0, interval_unit1341.getTree());

			}

			retval.stop = input.LT(-1);

			if (state.backtracking == 0) {

				retval.tree = (Object) adaptor.rulePostProcessing(root_0);
				adaptor.setTokenBoundaries(retval.tree, retval.start,
						retval.stop);
			}
		} catch (RecognitionException re) {
			reportError(re);
			recover(input, re);
			retval.tree = (Object) adaptor.errorNode(input, retval.start,
					input.LT(-1), re);

		} finally {
		}
		return retval;
	}

	// $ANTLR end "interval_expr"

	public static class table_references_return extends ParserRuleReturnScope {
		Object tree;

		public Object getTree() {
			return tree;
		}
	};

	// $ANTLR start "table_references"
	// C:\\Users\\grand\\Desktop\\another\\MySQL.g:991:1: table_references :
	// table_reference ( COMMA table_reference )* ;
	public final MySQLParser.table_references_return table_references()
			throws RecognitionException {
		MySQLParser.table_references_return retval = new MySQLParser.table_references_return();
		retval.start = input.LT(1);

		Object root_0 = null;

		Token COMMA1343 = null;
		MySQLParser.table_reference_return table_reference1342 = null;

		MySQLParser.table_reference_return table_reference1344 = null;

		Object COMMA1343_tree = null;

		try {
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:991:17: (
			// table_reference ( COMMA table_reference )* )
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:992:9:
			// table_reference ( COMMA table_reference )*
			{
				root_0 = (Object) adaptor.nil();

				pushFollow(FOLLOW_table_reference_in_table_references8804);
				table_reference1342 = table_reference();

				state._fsp--;
				if (state.failed)
					return retval;
				if (state.backtracking == 0)
					adaptor.addChild(root_0, table_reference1342.getTree());
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:992:25: ( COMMA
				// table_reference )*
				loop465: do {
					int alt465 = 2;
					int LA465_0 = input.LA(1);

					if ((LA465_0 == COMMA)) {
						alt465 = 1;
					}

					switch (alt465) {
					case 1:
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:992:27: COMMA
					// table_reference
					{
						COMMA1343 = (Token) match(input, COMMA,
								FOLLOW_COMMA_in_table_references8808);
						if (state.failed)
							return retval;
						pushFollow(FOLLOW_table_reference_in_table_references8811);
						table_reference1344 = table_reference();

						state._fsp--;
						if (state.failed)
							return retval;
						if (state.backtracking == 0)
							adaptor.addChild(root_0,
									table_reference1344.getTree());

					}
						break;

					default:
						break loop465;
					}
				} while (true);

			}

			retval.stop = input.LT(-1);

			if (state.backtracking == 0) {

				retval.tree = (Object) adaptor.rulePostProcessing(root_0);
				adaptor.setTokenBoundaries(retval.tree, retval.start,
						retval.stop);
			}
		} catch (RecognitionException re) {
			reportError(re);
			recover(input, re);
			retval.tree = (Object) adaptor.errorNode(input, retval.start,
					input.LT(-1), re);

		} finally {
		}
		return retval;
	}

	// $ANTLR end "table_references"

	public static class table_reference_return extends ParserRuleReturnScope {
		Object tree;

		public Object getTree() {
			return tree;
		}
	};

	// $ANTLR start "table_reference"
	// C:\\Users\\grand\\Desktop\\another\\MySQL.g:994:1: table_reference : (
	// table_factor1 | table_atom );
	public final MySQLParser.table_reference_return table_reference()
			throws RecognitionException {
		MySQLParser.table_reference_return retval = new MySQLParser.table_reference_return();
		retval.start = input.LT(1);

		Object root_0 = null;

		MySQLParser.table_factor1_return table_factor11345 = null;

		MySQLParser.table_atom_return table_atom1346 = null;

		try {
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:994:16: (
			// table_factor1 | table_atom )
			int alt466 = 2;
			switch (input.LA(1)) {
			case ID: {
				int LA466_1 = input.LA(2);

				if ((synpred913_MySQL())) {
					alt466 = 1;
				} else if ((true)) {
					alt466 = 2;
				} else {
					if (state.backtracking > 0) {
						state.failed = true;
						return retval;
					}
					NoViableAltException nvae = new NoViableAltException("",
							466, 1, input);

					throw nvae;
				}
			}
				break;
			case LPAREN: {
				int LA466_2 = input.LA(2);

				if ((synpred913_MySQL())) {
					alt466 = 1;
				} else if ((true)) {
					alt466 = 2;
				} else {
					if (state.backtracking > 0) {
						state.failed = true;
						return retval;
					}
					NoViableAltException nvae = new NoViableAltException("",
							466, 2, input);

					throw nvae;
				}
			}
				break;
			case OJ_SYM: {
				int LA466_3 = input.LA(2);

				if ((synpred913_MySQL())) {
					alt466 = 1;
				} else if ((true)) {
					alt466 = 2;
				} else {
					if (state.backtracking > 0) {
						state.failed = true;
						return retval;
					}
					NoViableAltException nvae = new NoViableAltException("",
							466, 3, input);

					throw nvae;
				}
			}
				break;
			default:
				if (state.backtracking > 0) {
					state.failed = true;
					return retval;
				}
				NoViableAltException nvae = new NoViableAltException("", 466,
						0, input);

				throw nvae;
			}

			switch (alt466) {
			case 1:
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:995:2: table_factor1
			{
				root_0 = (Object) adaptor.nil();

				pushFollow(FOLLOW_table_factor1_in_table_reference8822);
				table_factor11345 = table_factor1();

				state._fsp--;
				if (state.failed)
					return retval;
				if (state.backtracking == 0)
					adaptor.addChild(root_0, table_factor11345.getTree());

			}
				break;
			case 2:
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:995:18: table_atom
			{
				root_0 = (Object) adaptor.nil();

				pushFollow(FOLLOW_table_atom_in_table_reference8826);
				table_atom1346 = table_atom();

				state._fsp--;
				if (state.failed)
					return retval;
				if (state.backtracking == 0)
					adaptor.addChild(root_0, table_atom1346.getTree());

			}
				break;

			}
			retval.stop = input.LT(-1);

			if (state.backtracking == 0) {

				retval.tree = (Object) adaptor.rulePostProcessing(root_0);
				adaptor.setTokenBoundaries(retval.tree, retval.start,
						retval.stop);
			}
		} catch (RecognitionException re) {
			reportError(re);
			recover(input, re);
			retval.tree = (Object) adaptor.errorNode(input, retval.start,
					input.LT(-1), re);

		} finally {
		}
		return retval;
	}

	// $ANTLR end "table_reference"

	public static class table_factor1_return extends ParserRuleReturnScope {
		Object tree;

		public Object getTree() {
			return tree;
		}
	};

	// $ANTLR start "table_factor1"
	// C:\\Users\\grand\\Desktop\\another\\MySQL.g:997:1: table_factor1 :
	// table_factor2 ( ( INNER_SYM | CROSS )? JOIN_SYM table_atom (
	// join_condition )? )? ;
	public final MySQLParser.table_factor1_return table_factor1()
			throws RecognitionException {
		MySQLParser.table_factor1_return retval = new MySQLParser.table_factor1_return();
		retval.start = input.LT(1);

		Object root_0 = null;

		Token INNER_SYM1348 = null;
		Token CROSS1349 = null;
		Token JOIN_SYM1350 = null;
		MySQLParser.table_factor2_return table_factor21347 = null;

		MySQLParser.table_atom_return table_atom1351 = null;

		MySQLParser.join_condition_return join_condition1352 = null;

		Object INNER_SYM1348_tree = null;
		Object CROSS1349_tree = null;
		Object JOIN_SYM1350_tree = null;

		try {
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:997:14: (
			// table_factor2 ( ( INNER_SYM | CROSS )? JOIN_SYM table_atom (
			// join_condition )? )? )
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:998:2: table_factor2
			// ( ( INNER_SYM | CROSS )? JOIN_SYM table_atom ( join_condition )?
			// )?
			{
				root_0 = (Object) adaptor.nil();

				pushFollow(FOLLOW_table_factor2_in_table_factor18834);
				table_factor21347 = table_factor2();

				state._fsp--;
				if (state.failed)
					return retval;
				if (state.backtracking == 0)
					adaptor.addChild(root_0, table_factor21347.getTree());
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:998:16: ( (
				// INNER_SYM | CROSS )? JOIN_SYM table_atom ( join_condition )?
				// )?
				int alt469 = 2;
				int LA469_0 = input.LA(1);

				if (((LA469_0 >= INNER_SYM && LA469_0 <= JOIN_SYM))) {
					alt469 = 1;
				}
				switch (alt469) {
				case 1:
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:998:19: (
				// INNER_SYM | CROSS )? JOIN_SYM table_atom ( join_condition )?
				{
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:998:19: (
					// INNER_SYM | CROSS )?
					int alt467 = 3;
					int LA467_0 = input.LA(1);

					if ((LA467_0 == INNER_SYM)) {
						alt467 = 1;
					} else if ((LA467_0 == CROSS)) {
						alt467 = 2;
					}
					switch (alt467) {
					case 1:
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:998:20:
					// INNER_SYM
					{
						INNER_SYM1348 = (Token) match(input, INNER_SYM,
								FOLLOW_INNER_SYM_in_table_factor18840);
						if (state.failed)
							return retval;
						if (state.backtracking == 0) {
							INNER_SYM1348_tree = (Object) adaptor
									.create(INNER_SYM1348);
							root_0 = (Object) adaptor.becomeRoot(
									INNER_SYM1348_tree, root_0);
						}

					}
						break;
					case 2:
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:998:33: CROSS
					{
						CROSS1349 = (Token) match(input, CROSS,
								FOLLOW_CROSS_in_table_factor18845);
						if (state.failed)
							return retval;
						if (state.backtracking == 0) {
							CROSS1349_tree = (Object) adaptor.create(CROSS1349);
							root_0 = (Object) adaptor.becomeRoot(
									CROSS1349_tree, root_0);
						}

					}
						break;

					}

					JOIN_SYM1350 = (Token) match(input, JOIN_SYM,
							FOLLOW_JOIN_SYM_in_table_factor18850);
					if (state.failed)
						return retval;
					if (state.backtracking == 0) {
						JOIN_SYM1350_tree = (Object) adaptor
								.create(JOIN_SYM1350);
						root_0 = (Object) adaptor.becomeRoot(JOIN_SYM1350_tree,
								root_0);
					}
					pushFollow(FOLLOW_table_atom_in_table_factor18853);
					table_atom1351 = table_atom();

					state._fsp--;
					if (state.failed)
						return retval;
					if (state.backtracking == 0)
						adaptor.addChild(root_0, table_atom1351.getTree());
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:998:63: (
					// join_condition )?
					int alt468 = 2;
					alt468 = dfa468.predict(input);
					switch (alt468) {
					case 1:
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:998:64:
					// join_condition
					{
						pushFollow(FOLLOW_join_condition_in_table_factor18856);
						join_condition1352 = join_condition();

						state._fsp--;
						if (state.failed)
							return retval;
						if (state.backtracking == 0)
							adaptor.addChild(root_0,
									join_condition1352.getTree());

					}
						break;

					}

				}
					break;

				}

			}

			retval.stop = input.LT(-1);

			if (state.backtracking == 0) {

				retval.tree = (Object) adaptor.rulePostProcessing(root_0);
				adaptor.setTokenBoundaries(retval.tree, retval.start,
						retval.stop);
			}
		} catch (RecognitionException re) {
			reportError(re);
			recover(input, re);
			retval.tree = (Object) adaptor.errorNode(input, retval.start,
					input.LT(-1), re);

		} finally {
		}
		return retval;
	}

	// $ANTLR end "table_factor1"

	public static class table_factor2_return extends ParserRuleReturnScope {
		Object tree;

		public Object getTree() {
			return tree;
		}
	};

	// $ANTLR start "table_factor2"
	// C:\\Users\\grand\\Desktop\\another\\MySQL.g:1000:1: table_factor2 :
	// table_factor3 ( STRAIGHT_JOIN table_atom ( ON expression )? )? ;
	public final MySQLParser.table_factor2_return table_factor2()
			throws RecognitionException {
		MySQLParser.table_factor2_return retval = new MySQLParser.table_factor2_return();
		retval.start = input.LT(1);

		Object root_0 = null;

		Token STRAIGHT_JOIN1354 = null;
		Token ON1356 = null;
		MySQLParser.table_factor3_return table_factor31353 = null;

		MySQLParser.table_atom_return table_atom1355 = null;

		MySQLParser.expression_return expression1357 = null;

		Object STRAIGHT_JOIN1354_tree = null;
		Object ON1356_tree = null;

		try {
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:1000:14: (
			// table_factor3 ( STRAIGHT_JOIN table_atom ( ON expression )? )? )
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:1001:2: table_factor3
			// ( STRAIGHT_JOIN table_atom ( ON expression )? )?
			{
				root_0 = (Object) adaptor.nil();

				pushFollow(FOLLOW_table_factor3_in_table_factor28870);
				table_factor31353 = table_factor3();

				state._fsp--;
				if (state.failed)
					return retval;
				if (state.backtracking == 0)
					adaptor.addChild(root_0, table_factor31353.getTree());
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:1001:16: (
				// STRAIGHT_JOIN table_atom ( ON expression )? )?
				int alt471 = 2;
				int LA471_0 = input.LA(1);

				if ((LA471_0 == STRAIGHT_JOIN)) {
					alt471 = 1;
				}
				switch (alt471) {
				case 1:
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:1001:19:
				// STRAIGHT_JOIN table_atom ( ON expression )?
				{
					STRAIGHT_JOIN1354 = (Token) match(input, STRAIGHT_JOIN,
							FOLLOW_STRAIGHT_JOIN_in_table_factor28875);
					if (state.failed)
						return retval;
					if (state.backtracking == 0) {
						STRAIGHT_JOIN1354_tree = (Object) adaptor
								.create(STRAIGHT_JOIN1354);
						root_0 = (Object) adaptor.becomeRoot(
								STRAIGHT_JOIN1354_tree, root_0);
					}
					pushFollow(FOLLOW_table_atom_in_table_factor28878);
					table_atom1355 = table_atom();

					state._fsp--;
					if (state.failed)
						return retval;
					if (state.backtracking == 0)
						adaptor.addChild(root_0, table_atom1355.getTree());
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:1001:45: ( ON
					// expression )?
					int alt470 = 2;
					alt470 = dfa470.predict(input);
					switch (alt470) {
					case 1:
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:1001:46: ON
					// expression
					{
						ON1356 = (Token) match(input, ON,
								FOLLOW_ON_in_table_factor28881);
						if (state.failed)
							return retval;
						if (state.backtracking == 0) {
							ON1356_tree = (Object) adaptor.create(ON1356);
							root_0 = (Object) adaptor.becomeRoot(ON1356_tree,
									root_0);
						}
						pushFollow(FOLLOW_expression_in_table_factor28884);
						expression1357 = expression();

						state._fsp--;
						if (state.failed)
							return retval;
						if (state.backtracking == 0)
							adaptor.addChild(root_0, expression1357.getTree());

					}
						break;

					}

				}
					break;

				}

			}

			retval.stop = input.LT(-1);

			if (state.backtracking == 0) {

				retval.tree = (Object) adaptor.rulePostProcessing(root_0);
				adaptor.setTokenBoundaries(retval.tree, retval.start,
						retval.stop);
			}
		} catch (RecognitionException re) {
			reportError(re);
			recover(input, re);
			retval.tree = (Object) adaptor.errorNode(input, retval.start,
					input.LT(-1), re);

		} finally {
		}
		return retval;
	}

	// $ANTLR end "table_factor2"

	public static class table_factor3_return extends ParserRuleReturnScope {
		Object tree;

		public Object getTree() {
			return tree;
		}
	};

	// $ANTLR start "table_factor3"
	// C:\\Users\\grand\\Desktop\\another\\MySQL.g:1003:1: table_factor3 :
	// table_factor4 ( ( LEFT | RIGHT ) ( OUTER )? JOIN_SYM table_factor4
	// join_condition )? ;
	public final MySQLParser.table_factor3_return table_factor3()
			throws RecognitionException {
		MySQLParser.table_factor3_return retval = new MySQLParser.table_factor3_return();
		retval.start = input.LT(1);

		Object root_0 = null;

		Token LEFT1359 = null;
		Token RIGHT1360 = null;
		Token OUTER1361 = null;
		Token JOIN_SYM1362 = null;
		MySQLParser.table_factor4_return table_factor41358 = null;

		MySQLParser.table_factor4_return table_factor41363 = null;

		MySQLParser.join_condition_return join_condition1364 = null;

		Object LEFT1359_tree = null;
		Object RIGHT1360_tree = null;
		Object OUTER1361_tree = null;
		Object JOIN_SYM1362_tree = null;

		try {
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:1003:14: (
			// table_factor4 ( ( LEFT | RIGHT ) ( OUTER )? JOIN_SYM
			// table_factor4 join_condition )? )
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:1004:2: table_factor4
			// ( ( LEFT | RIGHT ) ( OUTER )? JOIN_SYM table_factor4
			// join_condition )?
			{
				root_0 = (Object) adaptor.nil();

				pushFollow(FOLLOW_table_factor4_in_table_factor38898);
				table_factor41358 = table_factor4();

				state._fsp--;
				if (state.failed)
					return retval;
				if (state.backtracking == 0)
					adaptor.addChild(root_0, table_factor41358.getTree());
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:1004:16: ( ( LEFT
				// | RIGHT ) ( OUTER )? JOIN_SYM table_factor4 join_condition )?
				int alt474 = 2;
				alt474 = dfa474.predict(input);
				switch (alt474) {
				case 1:
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:1004:19: ( LEFT |
				// RIGHT ) ( OUTER )? JOIN_SYM table_factor4 join_condition
				{
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:1004:19: (
					// LEFT | RIGHT )
					int alt472 = 2;
					int LA472_0 = input.LA(1);

					if ((LA472_0 == LEFT)) {
						alt472 = 1;
					} else if ((LA472_0 == RIGHT)) {
						alt472 = 2;
					} else {
						if (state.backtracking > 0) {
							state.failed = true;
							return retval;
						}
						NoViableAltException nvae = new NoViableAltException(
								"", 472, 0, input);

						throw nvae;
					}
					switch (alt472) {
					case 1:
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:1004:20: LEFT
					{
						LEFT1359 = (Token) match(input, LEFT,
								FOLLOW_LEFT_in_table_factor38904);
						if (state.failed)
							return retval;
						if (state.backtracking == 0) {
							LEFT1359_tree = (Object) adaptor.create(LEFT1359);
							root_0 = (Object) adaptor.becomeRoot(LEFT1359_tree,
									root_0);
						}

					}
						break;
					case 2:
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:1004:26:
					// RIGHT
					{
						RIGHT1360 = (Token) match(input, RIGHT,
								FOLLOW_RIGHT_in_table_factor38907);
						if (state.failed)
							return retval;
						if (state.backtracking == 0) {
							RIGHT1360_tree = (Object) adaptor.create(RIGHT1360);
							root_0 = (Object) adaptor.becomeRoot(
									RIGHT1360_tree, root_0);
						}

					}
						break;

					}

					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:1004:34: (
					// OUTER )?
					int alt473 = 2;
					int LA473_0 = input.LA(1);

					if ((LA473_0 == OUTER)) {
						alt473 = 1;
					}
					switch (alt473) {
					case 1:
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:1004:35:
					// OUTER
					{
						OUTER1361 = (Token) match(input, OUTER,
								FOLLOW_OUTER_in_table_factor38912);
						if (state.failed)
							return retval;
						if (state.backtracking == 0) {
							OUTER1361_tree = (Object) adaptor.create(OUTER1361);
							root_0 = (Object) adaptor.becomeRoot(
									OUTER1361_tree, root_0);
						}

					}
						break;

					}

					JOIN_SYM1362 = (Token) match(input, JOIN_SYM,
							FOLLOW_JOIN_SYM_in_table_factor38917);
					if (state.failed)
						return retval;
					if (state.backtracking == 0) {
						JOIN_SYM1362_tree = (Object) adaptor
								.create(JOIN_SYM1362);
						root_0 = (Object) adaptor.becomeRoot(JOIN_SYM1362_tree,
								root_0);
					}
					pushFollow(FOLLOW_table_factor4_in_table_factor38920);
					table_factor41363 = table_factor4();

					state._fsp--;
					if (state.failed)
						return retval;
					if (state.backtracking == 0)
						adaptor.addChild(root_0, table_factor41363.getTree());
					pushFollow(FOLLOW_join_condition_in_table_factor38922);
					join_condition1364 = join_condition();

					state._fsp--;
					if (state.failed)
						return retval;
					if (state.backtracking == 0)
						adaptor.addChild(root_0, join_condition1364.getTree());

				}
					break;

				}

			}

			retval.stop = input.LT(-1);

			if (state.backtracking == 0) {

				retval.tree = (Object) adaptor.rulePostProcessing(root_0);
				adaptor.setTokenBoundaries(retval.tree, retval.start,
						retval.stop);
			}
		} catch (RecognitionException re) {
			reportError(re);
			recover(input, re);
			retval.tree = (Object) adaptor.errorNode(input, retval.start,
					input.LT(-1), re);

		} finally {
		}
		return retval;
	}

	// $ANTLR end "table_factor3"

	public static class table_factor4_return extends ParserRuleReturnScope {
		Object tree;

		public Object getTree() {
			return tree;
		}
	};

	// $ANTLR start "table_factor4"
	// C:\\Users\\grand\\Desktop\\another\\MySQL.g:1006:1: table_factor4 :
	// table_atom ( NATURAL ( ( LEFT | RIGHT ) ( OUTER )? )? JOIN_SYM table_atom
	// )? ;
	public final MySQLParser.table_factor4_return table_factor4()
			throws RecognitionException {
		MySQLParser.table_factor4_return retval = new MySQLParser.table_factor4_return();
		retval.start = input.LT(1);

		Object root_0 = null;

		Token NATURAL1366 = null;
		Token LEFT1367 = null;
		Token RIGHT1368 = null;
		Token OUTER1369 = null;
		Token JOIN_SYM1370 = null;
		MySQLParser.table_atom_return table_atom1365 = null;

		MySQLParser.table_atom_return table_atom1371 = null;

		Object NATURAL1366_tree = null;
		Object LEFT1367_tree = null;
		Object RIGHT1368_tree = null;
		Object OUTER1369_tree = null;
		Object JOIN_SYM1370_tree = null;

		try {
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:1006:14: ( table_atom
			// ( NATURAL ( ( LEFT | RIGHT ) ( OUTER )? )? JOIN_SYM table_atom )?
			// )
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:1007:2: table_atom (
			// NATURAL ( ( LEFT | RIGHT ) ( OUTER )? )? JOIN_SYM table_atom )?
			{
				root_0 = (Object) adaptor.nil();

				pushFollow(FOLLOW_table_atom_in_table_factor48934);
				table_atom1365 = table_atom();

				state._fsp--;
				if (state.failed)
					return retval;
				if (state.backtracking == 0)
					adaptor.addChild(root_0, table_atom1365.getTree());
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:1007:13: (
				// NATURAL ( ( LEFT | RIGHT ) ( OUTER )? )? JOIN_SYM table_atom
				// )?
				int alt478 = 2;
				int LA478_0 = input.LA(1);

				if ((LA478_0 == NATURAL)) {
					alt478 = 1;
				}
				switch (alt478) {
				case 1:
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:1007:16: NATURAL
				// ( ( LEFT | RIGHT ) ( OUTER )? )? JOIN_SYM table_atom
				{
					NATURAL1366 = (Token) match(input, NATURAL,
							FOLLOW_NATURAL_in_table_factor48939);
					if (state.failed)
						return retval;
					if (state.backtracking == 0) {
						NATURAL1366_tree = (Object) adaptor.create(NATURAL1366);
						root_0 = (Object) adaptor.becomeRoot(NATURAL1366_tree,
								root_0);
					}
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:1007:25: ( (
					// LEFT | RIGHT ) ( OUTER )? )?
					int alt477 = 2;
					int LA477_0 = input.LA(1);

					if ((LA477_0 == LEFT || LA477_0 == RIGHT)) {
						alt477 = 1;
					}
					switch (alt477) {
					case 1:
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:1007:27: (
					// LEFT | RIGHT ) ( OUTER )?
					{
						// C:\\Users\\grand\\Desktop\\another\\MySQL.g:1007:27:
						// ( LEFT | RIGHT )
						int alt475 = 2;
						int LA475_0 = input.LA(1);

						if ((LA475_0 == LEFT)) {
							alt475 = 1;
						} else if ((LA475_0 == RIGHT)) {
							alt475 = 2;
						} else {
							if (state.backtracking > 0) {
								state.failed = true;
								return retval;
							}
							NoViableAltException nvae = new NoViableAltException(
									"", 475, 0, input);

							throw nvae;
						}
						switch (alt475) {
						case 1:
						// C:\\Users\\grand\\Desktop\\another\\MySQL.g:1007:28:
						// LEFT
						{
							LEFT1367 = (Token) match(input, LEFT,
									FOLLOW_LEFT_in_table_factor48945);
							if (state.failed)
								return retval;
							if (state.backtracking == 0) {
								LEFT1367_tree = (Object) adaptor
										.create(LEFT1367);
								root_0 = (Object) adaptor.becomeRoot(
										LEFT1367_tree, root_0);
							}

						}
							break;
						case 2:
						// C:\\Users\\grand\\Desktop\\another\\MySQL.g:1007:34:
						// RIGHT
						{
							RIGHT1368 = (Token) match(input, RIGHT,
									FOLLOW_RIGHT_in_table_factor48948);
							if (state.failed)
								return retval;
							if (state.backtracking == 0) {
								RIGHT1368_tree = (Object) adaptor
										.create(RIGHT1368);
								root_0 = (Object) adaptor.becomeRoot(
										RIGHT1368_tree, root_0);
							}

						}
							break;

						}

						// C:\\Users\\grand\\Desktop\\another\\MySQL.g:1007:42:
						// ( OUTER )?
						int alt476 = 2;
						int LA476_0 = input.LA(1);

						if ((LA476_0 == OUTER)) {
							alt476 = 1;
						}
						switch (alt476) {
						case 1:
						// C:\\Users\\grand\\Desktop\\another\\MySQL.g:1007:43:
						// OUTER
						{
							OUTER1369 = (Token) match(input, OUTER,
									FOLLOW_OUTER_in_table_factor48953);
							if (state.failed)
								return retval;
							if (state.backtracking == 0) {
								OUTER1369_tree = (Object) adaptor
										.create(OUTER1369);
								root_0 = (Object) adaptor.becomeRoot(
										OUTER1369_tree, root_0);
							}

						}
							break;

						}

					}
						break;

					}

					JOIN_SYM1370 = (Token) match(input, JOIN_SYM,
							FOLLOW_JOIN_SYM_in_table_factor48961);
					if (state.failed)
						return retval;
					if (state.backtracking == 0) {
						JOIN_SYM1370_tree = (Object) adaptor
								.create(JOIN_SYM1370);
						root_0 = (Object) adaptor.becomeRoot(JOIN_SYM1370_tree,
								root_0);
					}
					pushFollow(FOLLOW_table_atom_in_table_factor48964);
					table_atom1371 = table_atom();

					state._fsp--;
					if (state.failed)
						return retval;
					if (state.backtracking == 0)
						adaptor.addChild(root_0, table_atom1371.getTree());

				}
					break;

				}

			}

			retval.stop = input.LT(-1);

			if (state.backtracking == 0) {

				retval.tree = (Object) adaptor.rulePostProcessing(root_0);
				adaptor.setTokenBoundaries(retval.tree, retval.start,
						retval.stop);
			}
		} catch (RecognitionException re) {
			reportError(re);
			recover(input, re);
			retval.tree = (Object) adaptor.errorNode(input, retval.start,
					input.LT(-1), re);

		} finally {
		}
		return retval;
	}

	// $ANTLR end "table_factor4"

	public static class table_atom_return extends ParserRuleReturnScope {
		Object tree;

		public Object getTree() {
			return tree;
		}
	};

	// $ANTLR start "table_atom"
	// C:\\Users\\grand\\Desktop\\another\\MySQL.g:1009:1: table_atom : ( (
	// table_spec ( partition_clause )? ( alias )? ( index_hint_list )? ) | (
	// subquery alias ) | ( LPAREN table_references RPAREN ) | ( OJ_SYM
	// table_reference LEFT OUTER JOIN_SYM table_reference ON expression ) );
	public final MySQLParser.table_atom_return table_atom()
			throws RecognitionException {
		MySQLParser.table_atom_return retval = new MySQLParser.table_atom_return();
		retval.start = input.LT(1);

		Object root_0 = null;

		Token LPAREN1378 = null;
		Token RPAREN1380 = null;
		Token OJ_SYM1381 = null;
		Token LEFT1383 = null;
		Token OUTER1384 = null;
		Token JOIN_SYM1385 = null;
		Token ON1387 = null;
		MySQLParser.table_spec_return table_spec1372 = null;

		MySQLParser.partition_clause_return partition_clause1373 = null;

		MySQLParser.alias_return alias1374 = null;

		MySQLParser.index_hint_list_return index_hint_list1375 = null;

		MySQLParser.subquery_return subquery1376 = null;

		MySQLParser.alias_return alias1377 = null;

		MySQLParser.table_references_return table_references1379 = null;

		MySQLParser.table_reference_return table_reference1382 = null;

		MySQLParser.table_reference_return table_reference1386 = null;

		MySQLParser.expression_return expression1388 = null;

		Object LPAREN1378_tree = null;
		Object RPAREN1380_tree = null;
		Object OJ_SYM1381_tree = null;
		Object LEFT1383_tree = null;
		Object OUTER1384_tree = null;
		Object JOIN_SYM1385_tree = null;
		Object ON1387_tree = null;

		try {
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:1009:11: ( (
			// table_spec ( partition_clause )? ( alias )? ( index_hint_list )?
			// ) | ( subquery alias ) | ( LPAREN table_references RPAREN ) | (
			// OJ_SYM table_reference LEFT OUTER JOIN_SYM table_reference ON
			// expression ) )
			int alt482 = 4;
			switch (input.LA(1)) {
			case ID: {
				alt482 = 1;
			}
				break;
			case LPAREN: {
				int LA482_2 = input.LA(2);

				if ((LA482_2 == LPAREN || LA482_2 == ID || LA482_2 == OJ_SYM)) {
					alt482 = 3;
				} else if ((LA482_2 == SELECT)) {
					alt482 = 2;
				} else {
					if (state.backtracking > 0) {
						state.failed = true;
						return retval;
					}
					NoViableAltException nvae = new NoViableAltException("",
							482, 2, input);

					throw nvae;
				}
			}
				break;
			case OJ_SYM: {
				alt482 = 4;
			}
				break;
			default:
				if (state.backtracking > 0) {
					state.failed = true;
					return retval;
				}
				NoViableAltException nvae = new NoViableAltException("", 482,
						0, input);

				throw nvae;
			}

			switch (alt482) {
			case 1:
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:1010:4: ( table_spec
			// ( partition_clause )? ( alias )? ( index_hint_list )? )
			{
				root_0 = (Object) adaptor.nil();

				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:1010:4: (
				// table_spec ( partition_clause )? ( alias )? ( index_hint_list
				// )? )
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:1010:6:
				// table_spec ( partition_clause )? ( alias )? ( index_hint_list
				// )?
				{
					pushFollow(FOLLOW_table_spec_in_table_atom8979);
					table_spec1372 = table_spec();

					state._fsp--;
					if (state.failed)
						return retval;
					if (state.backtracking == 0)
						adaptor.addChild(root_0, table_spec1372.getTree());
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:1010:17: (
					// partition_clause )?
					int alt479 = 2;
					alt479 = dfa479.predict(input);
					switch (alt479) {
					case 1:
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:1010:18:
					// partition_clause
					{
						pushFollow(FOLLOW_partition_clause_in_table_atom8982);
						partition_clause1373 = partition_clause();

						state._fsp--;
						if (state.failed)
							return retval;
						if (state.backtracking == 0)
							adaptor.addChild(root_0,
									partition_clause1373.getTree());

					}
						break;

					}

					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:1010:37: (
					// alias )?
					int alt480 = 2;
					int LA480_0 = input.LA(1);

					if ((LA480_0 == AS_SYM || LA480_0 == ID)) {
						alt480 = 1;
					}
					switch (alt480) {
					case 1:
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:1010:38:
					// alias
					{
						pushFollow(FOLLOW_alias_in_table_atom8987);
						alias1374 = alias();

						state._fsp--;
						if (state.failed)
							return retval;
						if (state.backtracking == 0)
							adaptor.addChild(root_0, alias1374.getTree());

					}
						break;

					}

					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:1010:46: (
					// index_hint_list )?
					int alt481 = 2;
					int LA481_0 = input.LA(1);

					if ((LA481_0 == IGNORE_SYM || LA481_0 == FORCE_SYM || LA481_0 == USE_SYM)) {
						alt481 = 1;
					}
					switch (alt481) {
					case 1:
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:1010:47:
					// index_hint_list
					{
						pushFollow(FOLLOW_index_hint_list_in_table_atom8992);
						index_hint_list1375 = index_hint_list();

						state._fsp--;
						if (state.failed)
							return retval;
						if (state.backtracking == 0)
							adaptor.addChild(root_0,
									index_hint_list1375.getTree());

					}
						break;

					}

				}

			}
				break;
			case 2:
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:1011:4: ( subquery
			// alias )
			{
				root_0 = (Object) adaptor.nil();

				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:1011:4: (
				// subquery alias )
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:1011:6: subquery
				// alias
				{
					pushFollow(FOLLOW_subquery_in_table_atom9003);
					subquery1376 = subquery();

					state._fsp--;
					if (state.failed)
						return retval;
					if (state.backtracking == 0)
						adaptor.addChild(root_0, subquery1376.getTree());
					pushFollow(FOLLOW_alias_in_table_atom9005);
					alias1377 = alias();

					state._fsp--;
					if (state.failed)
						return retval;
					if (state.backtracking == 0)
						adaptor.addChild(root_0, alias1377.getTree());

				}

			}
				break;
			case 3:
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:1012:4: ( LPAREN
			// table_references RPAREN )
			{
				root_0 = (Object) adaptor.nil();

				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:1012:4: ( LPAREN
				// table_references RPAREN )
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:1012:6: LPAREN
				// table_references RPAREN
				{
					LPAREN1378 = (Token) match(input, LPAREN,
							FOLLOW_LPAREN_in_table_atom9014);
					if (state.failed)
						return retval;
					pushFollow(FOLLOW_table_references_in_table_atom9017);
					table_references1379 = table_references();

					state._fsp--;
					if (state.failed)
						return retval;
					if (state.backtracking == 0)
						adaptor.addChild(root_0, table_references1379.getTree());
					RPAREN1380 = (Token) match(input, RPAREN,
							FOLLOW_RPAREN_in_table_atom9019);
					if (state.failed)
						return retval;

				}

			}
				break;
			case 4:
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:1013:4: ( OJ_SYM
			// table_reference LEFT OUTER JOIN_SYM table_reference ON expression
			// )
			{
				root_0 = (Object) adaptor.nil();

				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:1013:4: ( OJ_SYM
				// table_reference LEFT OUTER JOIN_SYM table_reference ON
				// expression )
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:1013:6: OJ_SYM
				// table_reference LEFT OUTER JOIN_SYM table_reference ON
				// expression
				{
					OJ_SYM1381 = (Token) match(input, OJ_SYM,
							FOLLOW_OJ_SYM_in_table_atom9029);
					if (state.failed)
						return retval;
					if (state.backtracking == 0) {
						OJ_SYM1381_tree = (Object) adaptor.create(OJ_SYM1381);
						root_0 = (Object) adaptor.becomeRoot(OJ_SYM1381_tree,
								root_0);
					}
					pushFollow(FOLLOW_table_reference_in_table_atom9032);
					table_reference1382 = table_reference();

					state._fsp--;
					if (state.failed)
						return retval;
					if (state.backtracking == 0)
						adaptor.addChild(root_0, table_reference1382.getTree());
					LEFT1383 = (Token) match(input, LEFT,
							FOLLOW_LEFT_in_table_atom9034);
					if (state.failed)
						return retval;
					if (state.backtracking == 0) {
						LEFT1383_tree = (Object) adaptor.create(LEFT1383);
						root_0 = (Object) adaptor.becomeRoot(LEFT1383_tree,
								root_0);
					}
					OUTER1384 = (Token) match(input, OUTER,
							FOLLOW_OUTER_in_table_atom9037);
					if (state.failed)
						return retval;
					if (state.backtracking == 0) {
						OUTER1384_tree = (Object) adaptor.create(OUTER1384);
						root_0 = (Object) adaptor.becomeRoot(OUTER1384_tree,
								root_0);
					}
					JOIN_SYM1385 = (Token) match(input, JOIN_SYM,
							FOLLOW_JOIN_SYM_in_table_atom9040);
					if (state.failed)
						return retval;
					if (state.backtracking == 0) {
						JOIN_SYM1385_tree = (Object) adaptor
								.create(JOIN_SYM1385);
						root_0 = (Object) adaptor.becomeRoot(JOIN_SYM1385_tree,
								root_0);
					}
					pushFollow(FOLLOW_table_reference_in_table_atom9043);
					table_reference1386 = table_reference();

					state._fsp--;
					if (state.failed)
						return retval;
					if (state.backtracking == 0)
						adaptor.addChild(root_0, table_reference1386.getTree());
					ON1387 = (Token) match(input, ON,
							FOLLOW_ON_in_table_atom9045);
					if (state.failed)
						return retval;
					if (state.backtracking == 0) {
						ON1387_tree = (Object) adaptor.create(ON1387);
						adaptor.addChild(root_0, ON1387_tree);
					}
					pushFollow(FOLLOW_expression_in_table_atom9047);
					expression1388 = expression();

					state._fsp--;
					if (state.failed)
						return retval;
					if (state.backtracking == 0)
						adaptor.addChild(root_0, expression1388.getTree());

				}

			}
				break;

			}
			retval.stop = input.LT(-1);

			if (state.backtracking == 0) {

				retval.tree = (Object) adaptor.rulePostProcessing(root_0);
				adaptor.setTokenBoundaries(retval.tree, retval.start,
						retval.stop);
			}
		} catch (RecognitionException re) {
			reportError(re);
			recover(input, re);
			retval.tree = (Object) adaptor.errorNode(input, retval.start,
					input.LT(-1), re);

		} finally {
		}
		return retval;
	}

	// $ANTLR end "table_atom"

	public static class join_condition_return extends ParserRuleReturnScope {
		Object tree;

		public Object getTree() {
			return tree;
		}
	};

	// $ANTLR start "join_condition"
	// C:\\Users\\grand\\Desktop\\another\\MySQL.g:1015:1: join_condition : ( (
	// ON expression ) | ( USING_SYM column_list ) );
	public final MySQLParser.join_condition_return join_condition()
			throws RecognitionException {
		MySQLParser.join_condition_return retval = new MySQLParser.join_condition_return();
		retval.start = input.LT(1);

		Object root_0 = null;

		Token ON1389 = null;
		Token USING_SYM1391 = null;
		MySQLParser.expression_return expression1390 = null;

		MySQLParser.column_list_return column_list1392 = null;

		Object ON1389_tree = null;
		Object USING_SYM1391_tree = null;

		try {
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:1015:15: ( ( ON
			// expression ) | ( USING_SYM column_list ) )
			int alt483 = 2;
			int LA483_0 = input.LA(1);

			if ((LA483_0 == ON)) {
				alt483 = 1;
			} else if ((LA483_0 == USING_SYM)) {
				alt483 = 2;
			} else {
				if (state.backtracking > 0) {
					state.failed = true;
					return retval;
				}
				NoViableAltException nvae = new NoViableAltException("", 483,
						0, input);

				throw nvae;
			}
			switch (alt483) {
			case 1:
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:1016:4: ( ON
			// expression )
			{
				root_0 = (Object) adaptor.nil();

				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:1016:4: ( ON
				// expression )
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:1016:5: ON
				// expression
				{
					ON1389 = (Token) match(input, ON,
							FOLLOW_ON_in_join_condition9060);
					if (state.failed)
						return retval;
					if (state.backtracking == 0) {
						ON1389_tree = (Object) adaptor.create(ON1389);
						root_0 = (Object) adaptor.becomeRoot(ON1389_tree,
								root_0);
					}
					pushFollow(FOLLOW_expression_in_join_condition9063);
					expression1390 = expression();

					state._fsp--;
					if (state.failed)
						return retval;
					if (state.backtracking == 0)
						adaptor.addChild(root_0, expression1390.getTree());

				}

			}
				break;
			case 2:
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:1016:23: ( USING_SYM
			// column_list )
			{
				root_0 = (Object) adaptor.nil();

				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:1016:23: (
				// USING_SYM column_list )
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:1016:24:
				// USING_SYM column_list
				{
					USING_SYM1391 = (Token) match(input, USING_SYM,
							FOLLOW_USING_SYM_in_join_condition9069);
					if (state.failed)
						return retval;
					if (state.backtracking == 0) {
						USING_SYM1391_tree = (Object) adaptor
								.create(USING_SYM1391);
						root_0 = (Object) adaptor.becomeRoot(
								USING_SYM1391_tree, root_0);
					}
					pushFollow(FOLLOW_column_list_in_join_condition9072);
					column_list1392 = column_list();

					state._fsp--;
					if (state.failed)
						return retval;
					if (state.backtracking == 0)
						adaptor.addChild(root_0, column_list1392.getTree());

				}

			}
				break;

			}
			retval.stop = input.LT(-1);

			if (state.backtracking == 0) {

				retval.tree = (Object) adaptor.rulePostProcessing(root_0);
				adaptor.setTokenBoundaries(retval.tree, retval.start,
						retval.stop);
			}
		} catch (RecognitionException re) {
			reportError(re);
			recover(input, re);
			retval.tree = (Object) adaptor.errorNode(input, retval.start,
					input.LT(-1), re);

		} finally {
		}
		return retval;
	}

	// $ANTLR end "join_condition"

	public static class index_hint_list_return extends ParserRuleReturnScope {
		Object tree;

		public Object getTree() {
			return tree;
		}
	};

	// $ANTLR start "index_hint_list"
	// C:\\Users\\grand\\Desktop\\another\\MySQL.g:1018:1: index_hint_list :
	// index_hint ( COMMA index_hint )* ;
	public final MySQLParser.index_hint_list_return index_hint_list()
			throws RecognitionException {
		MySQLParser.index_hint_list_return retval = new MySQLParser.index_hint_list_return();
		retval.start = input.LT(1);

		Object root_0 = null;

		Token COMMA1394 = null;
		MySQLParser.index_hint_return index_hint1393 = null;

		MySQLParser.index_hint_return index_hint1395 = null;

		Object COMMA1394_tree = null;

		try {
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:1018:16: ( index_hint
			// ( COMMA index_hint )* )
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:1019:2: index_hint (
			// COMMA index_hint )*
			{
				root_0 = (Object) adaptor.nil();

				pushFollow(FOLLOW_index_hint_in_index_hint_list9081);
				index_hint1393 = index_hint();

				state._fsp--;
				if (state.failed)
					return retval;
				if (state.backtracking == 0)
					adaptor.addChild(root_0, index_hint1393.getTree());
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:1019:13: ( COMMA
				// index_hint )*
				loop484: do {
					int alt484 = 2;
					int LA484_0 = input.LA(1);

					if ((LA484_0 == COMMA)) {
						int LA484_2 = input.LA(2);

						if ((LA484_2 == IGNORE_SYM || LA484_2 == FORCE_SYM || LA484_2 == USE_SYM)) {
							alt484 = 1;
						}

					}

					switch (alt484) {
					case 1:
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:1019:14:
					// COMMA index_hint
					{
						COMMA1394 = (Token) match(input, COMMA,
								FOLLOW_COMMA_in_index_hint_list9084);
						if (state.failed)
							return retval;
						pushFollow(FOLLOW_index_hint_in_index_hint_list9087);
						index_hint1395 = index_hint();

						state._fsp--;
						if (state.failed)
							return retval;
						if (state.backtracking == 0)
							adaptor.addChild(root_0, index_hint1395.getTree());

					}
						break;

					default:
						break loop484;
					}
				} while (true);

			}

			retval.stop = input.LT(-1);

			if (state.backtracking == 0) {

				retval.tree = (Object) adaptor.rulePostProcessing(root_0);
				adaptor.setTokenBoundaries(retval.tree, retval.start,
						retval.stop);
			}
		} catch (RecognitionException re) {
			reportError(re);
			recover(input, re);
			retval.tree = (Object) adaptor.errorNode(input, retval.start,
					input.LT(-1), re);

		} finally {
		}
		return retval;
	}

	// $ANTLR end "index_hint_list"

	public static class index_options_return extends ParserRuleReturnScope {
		Object tree;

		public Object getTree() {
			return tree;
		}
	};

	// $ANTLR start "index_options"
	// C:\\Users\\grand\\Desktop\\another\\MySQL.g:1021:1: index_options : (
	// INDEX_SYM | KEY_SYM ) ( FOR_SYM ( ( JOIN_SYM ) | ( ORDER_SYM BY_SYM ) | (
	// GROUP_SYM BY_SYM ) ) )? ;
	public final MySQLParser.index_options_return index_options()
			throws RecognitionException {
		MySQLParser.index_options_return retval = new MySQLParser.index_options_return();
		retval.start = input.LT(1);

		Object root_0 = null;

		Token set1396 = null;
		Token FOR_SYM1397 = null;
		Token JOIN_SYM1398 = null;
		Token ORDER_SYM1399 = null;
		Token BY_SYM1400 = null;
		Token GROUP_SYM1401 = null;
		Token BY_SYM1402 = null;

		Object set1396_tree = null;
		Object FOR_SYM1397_tree = null;
		Object JOIN_SYM1398_tree = null;
		Object ORDER_SYM1399_tree = null;
		Object BY_SYM1400_tree = null;
		Object GROUP_SYM1401_tree = null;
		Object BY_SYM1402_tree = null;

		try {
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:1021:14: ( (
			// INDEX_SYM | KEY_SYM ) ( FOR_SYM ( ( JOIN_SYM ) | ( ORDER_SYM
			// BY_SYM ) | ( GROUP_SYM BY_SYM ) ) )? )
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:1022:2: ( INDEX_SYM |
			// KEY_SYM ) ( FOR_SYM ( ( JOIN_SYM ) | ( ORDER_SYM BY_SYM ) | (
			// GROUP_SYM BY_SYM ) ) )?
			{
				root_0 = (Object) adaptor.nil();

				set1396 = (Token) input.LT(1);
				if (input.LA(1) == KEY_SYM || input.LA(1) == INDEX_SYM) {
					input.consume();
					if (state.backtracking == 0)
						adaptor.addChild(root_0,
								(Object) adaptor.create(set1396));
					state.errorRecovery = false;
					state.failed = false;
				} else {
					if (state.backtracking > 0) {
						state.failed = true;
						return retval;
					}
					MismatchedSetException mse = new MismatchedSetException(
							null, input);
					throw mse;
				}

				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:1022:24: (
				// FOR_SYM ( ( JOIN_SYM ) | ( ORDER_SYM BY_SYM ) | ( GROUP_SYM
				// BY_SYM ) ) )?
				int alt486 = 2;
				int LA486_0 = input.LA(1);

				if ((LA486_0 == FOR_SYM)) {
					alt486 = 1;
				}
				switch (alt486) {
				case 1:
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:1022:27: FOR_SYM
				// ( ( JOIN_SYM ) | ( ORDER_SYM BY_SYM ) | ( GROUP_SYM BY_SYM )
				// )
				{
					FOR_SYM1397 = (Token) match(input, FOR_SYM,
							FOLLOW_FOR_SYM_in_index_options9108);
					if (state.failed)
						return retval;
					if (state.backtracking == 0) {
						FOR_SYM1397_tree = (Object) adaptor.create(FOR_SYM1397);
						adaptor.addChild(root_0, FOR_SYM1397_tree);
					}
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:1022:35: ( (
					// JOIN_SYM ) | ( ORDER_SYM BY_SYM ) | ( GROUP_SYM BY_SYM )
					// )
					int alt485 = 3;
					switch (input.LA(1)) {
					case JOIN_SYM: {
						alt485 = 1;
					}
						break;
					case ORDER_SYM: {
						alt485 = 2;
					}
						break;
					case GROUP_SYM: {
						alt485 = 3;
					}
						break;
					default:
						if (state.backtracking > 0) {
							state.failed = true;
							return retval;
						}
						NoViableAltException nvae = new NoViableAltException(
								"", 485, 0, input);

						throw nvae;
					}

					switch (alt485) {
					case 1:
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:1022:36: (
					// JOIN_SYM )
					{
						// C:\\Users\\grand\\Desktop\\another\\MySQL.g:1022:36:
						// ( JOIN_SYM )
						// C:\\Users\\grand\\Desktop\\another\\MySQL.g:1022:37:
						// JOIN_SYM
						{
							JOIN_SYM1398 = (Token) match(input, JOIN_SYM,
									FOLLOW_JOIN_SYM_in_index_options9112);
							if (state.failed)
								return retval;
							if (state.backtracking == 0) {
								JOIN_SYM1398_tree = (Object) adaptor
										.create(JOIN_SYM1398);
								adaptor.addChild(root_0, JOIN_SYM1398_tree);
							}

						}

					}
						break;
					case 2:
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:1022:49: (
					// ORDER_SYM BY_SYM )
					{
						// C:\\Users\\grand\\Desktop\\another\\MySQL.g:1022:49:
						// ( ORDER_SYM BY_SYM )
						// C:\\Users\\grand\\Desktop\\another\\MySQL.g:1022:50:
						// ORDER_SYM BY_SYM
						{
							ORDER_SYM1399 = (Token) match(input, ORDER_SYM,
									FOLLOW_ORDER_SYM_in_index_options9118);
							if (state.failed)
								return retval;
							if (state.backtracking == 0) {
								ORDER_SYM1399_tree = (Object) adaptor
										.create(ORDER_SYM1399);
								adaptor.addChild(root_0, ORDER_SYM1399_tree);
							}
							BY_SYM1400 = (Token) match(input, BY_SYM,
									FOLLOW_BY_SYM_in_index_options9120);
							if (state.failed)
								return retval;
							if (state.backtracking == 0) {
								BY_SYM1400_tree = (Object) adaptor
										.create(BY_SYM1400);
								adaptor.addChild(root_0, BY_SYM1400_tree);
							}

						}

					}
						break;
					case 3:
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:1022:70: (
					// GROUP_SYM BY_SYM )
					{
						// C:\\Users\\grand\\Desktop\\another\\MySQL.g:1022:70:
						// ( GROUP_SYM BY_SYM )
						// C:\\Users\\grand\\Desktop\\another\\MySQL.g:1022:71:
						// GROUP_SYM BY_SYM
						{
							GROUP_SYM1401 = (Token) match(input, GROUP_SYM,
									FOLLOW_GROUP_SYM_in_index_options9126);
							if (state.failed)
								return retval;
							if (state.backtracking == 0) {
								GROUP_SYM1401_tree = (Object) adaptor
										.create(GROUP_SYM1401);
								adaptor.addChild(root_0, GROUP_SYM1401_tree);
							}
							BY_SYM1402 = (Token) match(input, BY_SYM,
									FOLLOW_BY_SYM_in_index_options9128);
							if (state.failed)
								return retval;
							if (state.backtracking == 0) {
								BY_SYM1402_tree = (Object) adaptor
										.create(BY_SYM1402);
								adaptor.addChild(root_0, BY_SYM1402_tree);
							}

						}

					}
						break;

					}

				}
					break;

				}

			}

			retval.stop = input.LT(-1);

			if (state.backtracking == 0) {

				retval.tree = (Object) adaptor.rulePostProcessing(root_0);
				adaptor.setTokenBoundaries(retval.tree, retval.start,
						retval.stop);
			}
		} catch (RecognitionException re) {
			reportError(re);
			recover(input, re);
			retval.tree = (Object) adaptor.errorNode(input, retval.start,
					input.LT(-1), re);

		} finally {
		}
		return retval;
	}

	// $ANTLR end "index_options"

	public static class index_hint_return extends ParserRuleReturnScope {
		Object tree;

		public Object getTree() {
			return tree;
		}
	};

	// $ANTLR start "index_hint"
	// C:\\Users\\grand\\Desktop\\another\\MySQL.g:1024:1: index_hint : (
	// USE_SYM index_options LPAREN ( index_list )? RPAREN | IGNORE_SYM
	// index_options LPAREN index_list RPAREN | FORCE_SYM index_options LPAREN
	// index_list RPAREN );
	public final MySQLParser.index_hint_return index_hint()
			throws RecognitionException {
		MySQLParser.index_hint_return retval = new MySQLParser.index_hint_return();
		retval.start = input.LT(1);

		Object root_0 = null;

		Token USE_SYM1403 = null;
		Token LPAREN1405 = null;
		Token RPAREN1407 = null;
		Token IGNORE_SYM1408 = null;
		Token LPAREN1410 = null;
		Token RPAREN1412 = null;
		Token FORCE_SYM1413 = null;
		Token LPAREN1415 = null;
		Token RPAREN1417 = null;
		MySQLParser.index_options_return index_options1404 = null;

		MySQLParser.index_list_return index_list1406 = null;

		MySQLParser.index_options_return index_options1409 = null;

		MySQLParser.index_list_return index_list1411 = null;

		MySQLParser.index_options_return index_options1414 = null;

		MySQLParser.index_list_return index_list1416 = null;

		Object USE_SYM1403_tree = null;
		Object LPAREN1405_tree = null;
		Object RPAREN1407_tree = null;
		Object IGNORE_SYM1408_tree = null;
		Object LPAREN1410_tree = null;
		Object RPAREN1412_tree = null;
		Object FORCE_SYM1413_tree = null;
		Object LPAREN1415_tree = null;
		Object RPAREN1417_tree = null;

		try {
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:1024:11: ( USE_SYM
			// index_options LPAREN ( index_list )? RPAREN | IGNORE_SYM
			// index_options LPAREN index_list RPAREN | FORCE_SYM index_options
			// LPAREN index_list RPAREN )
			int alt488 = 3;
			switch (input.LA(1)) {
			case USE_SYM: {
				alt488 = 1;
			}
				break;
			case IGNORE_SYM: {
				alt488 = 2;
			}
				break;
			case FORCE_SYM: {
				alt488 = 3;
			}
				break;
			default:
				if (state.backtracking > 0) {
					state.failed = true;
					return retval;
				}
				NoViableAltException nvae = new NoViableAltException("", 488,
						0, input);

				throw nvae;
			}

			switch (alt488) {
			case 1:
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:1025:4: USE_SYM
			// index_options LPAREN ( index_list )? RPAREN
			{
				root_0 = (Object) adaptor.nil();

				USE_SYM1403 = (Token) match(input, USE_SYM,
						FOLLOW_USE_SYM_in_index_hint9144);
				if (state.failed)
					return retval;
				if (state.backtracking == 0) {
					USE_SYM1403_tree = (Object) adaptor.create(USE_SYM1403);
					adaptor.addChild(root_0, USE_SYM1403_tree);
				}
				pushFollow(FOLLOW_index_options_in_index_hint9149);
				index_options1404 = index_options();

				state._fsp--;
				if (state.failed)
					return retval;
				if (state.backtracking == 0)
					adaptor.addChild(root_0, index_options1404.getTree());
				LPAREN1405 = (Token) match(input, LPAREN,
						FOLLOW_LPAREN_in_index_hint9151);
				if (state.failed)
					return retval;
				if (state.backtracking == 0) {
					LPAREN1405_tree = (Object) adaptor.create(LPAREN1405);
					adaptor.addChild(root_0, LPAREN1405_tree);
				}
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:1025:36: (
				// index_list )?
				int alt487 = 2;
				int LA487_0 = input.LA(1);

				if ((LA487_0 == ID)) {
					alt487 = 1;
				}
				switch (alt487) {
				case 1:
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:1025:37:
				// index_list
				{
					pushFollow(FOLLOW_index_list_in_index_hint9154);
					index_list1406 = index_list();

					state._fsp--;
					if (state.failed)
						return retval;
					if (state.backtracking == 0)
						adaptor.addChild(root_0, index_list1406.getTree());

				}
					break;

				}

				RPAREN1407 = (Token) match(input, RPAREN,
						FOLLOW_RPAREN_in_index_hint9158);
				if (state.failed)
					return retval;
				if (state.backtracking == 0) {
					RPAREN1407_tree = (Object) adaptor.create(RPAREN1407);
					adaptor.addChild(root_0, RPAREN1407_tree);
				}

			}
				break;
			case 2:
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:1026:4: IGNORE_SYM
			// index_options LPAREN index_list RPAREN
			{
				root_0 = (Object) adaptor.nil();

				IGNORE_SYM1408 = (Token) match(input, IGNORE_SYM,
						FOLLOW_IGNORE_SYM_in_index_hint9163);
				if (state.failed)
					return retval;
				if (state.backtracking == 0) {
					IGNORE_SYM1408_tree = (Object) adaptor
							.create(IGNORE_SYM1408);
					adaptor.addChild(root_0, IGNORE_SYM1408_tree);
				}
				pushFollow(FOLLOW_index_options_in_index_hint9165);
				index_options1409 = index_options();

				state._fsp--;
				if (state.failed)
					return retval;
				if (state.backtracking == 0)
					adaptor.addChild(root_0, index_options1409.getTree());
				LPAREN1410 = (Token) match(input, LPAREN,
						FOLLOW_LPAREN_in_index_hint9167);
				if (state.failed)
					return retval;
				if (state.backtracking == 0) {
					LPAREN1410_tree = (Object) adaptor.create(LPAREN1410);
					adaptor.addChild(root_0, LPAREN1410_tree);
				}
				pushFollow(FOLLOW_index_list_in_index_hint9169);
				index_list1411 = index_list();

				state._fsp--;
				if (state.failed)
					return retval;
				if (state.backtracking == 0)
					adaptor.addChild(root_0, index_list1411.getTree());
				RPAREN1412 = (Token) match(input, RPAREN,
						FOLLOW_RPAREN_in_index_hint9171);
				if (state.failed)
					return retval;
				if (state.backtracking == 0) {
					RPAREN1412_tree = (Object) adaptor.create(RPAREN1412);
					adaptor.addChild(root_0, RPAREN1412_tree);
				}

			}
				break;
			case 3:
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:1027:4: FORCE_SYM
			// index_options LPAREN index_list RPAREN
			{
				root_0 = (Object) adaptor.nil();

				FORCE_SYM1413 = (Token) match(input, FORCE_SYM,
						FOLLOW_FORCE_SYM_in_index_hint9176);
				if (state.failed)
					return retval;
				if (state.backtracking == 0) {
					FORCE_SYM1413_tree = (Object) adaptor.create(FORCE_SYM1413);
					adaptor.addChild(root_0, FORCE_SYM1413_tree);
				}
				pushFollow(FOLLOW_index_options_in_index_hint9179);
				index_options1414 = index_options();

				state._fsp--;
				if (state.failed)
					return retval;
				if (state.backtracking == 0)
					adaptor.addChild(root_0, index_options1414.getTree());
				LPAREN1415 = (Token) match(input, LPAREN,
						FOLLOW_LPAREN_in_index_hint9181);
				if (state.failed)
					return retval;
				if (state.backtracking == 0) {
					LPAREN1415_tree = (Object) adaptor.create(LPAREN1415);
					adaptor.addChild(root_0, LPAREN1415_tree);
				}
				pushFollow(FOLLOW_index_list_in_index_hint9183);
				index_list1416 = index_list();

				state._fsp--;
				if (state.failed)
					return retval;
				if (state.backtracking == 0)
					adaptor.addChild(root_0, index_list1416.getTree());
				RPAREN1417 = (Token) match(input, RPAREN,
						FOLLOW_RPAREN_in_index_hint9185);
				if (state.failed)
					return retval;
				if (state.backtracking == 0) {
					RPAREN1417_tree = (Object) adaptor.create(RPAREN1417);
					adaptor.addChild(root_0, RPAREN1417_tree);
				}

			}
				break;

			}
			retval.stop = input.LT(-1);

			if (state.backtracking == 0) {

				retval.tree = (Object) adaptor.rulePostProcessing(root_0);
				adaptor.setTokenBoundaries(retval.tree, retval.start,
						retval.stop);
			}
		} catch (RecognitionException re) {
			reportError(re);
			recover(input, re);
			retval.tree = (Object) adaptor.errorNode(input, retval.start,
					input.LT(-1), re);

		} finally {
		}
		return retval;
	}

	// $ANTLR end "index_hint"

	public static class index_list_return extends ParserRuleReturnScope {
		Object tree;

		public Object getTree() {
			return tree;
		}
	};

	// $ANTLR start "index_list"
	// C:\\Users\\grand\\Desktop\\another\\MySQL.g:1029:1: index_list :
	// index_name ( COMMA index_name )* ;
	public final MySQLParser.index_list_return index_list()
			throws RecognitionException {
		MySQLParser.index_list_return retval = new MySQLParser.index_list_return();
		retval.start = input.LT(1);

		Object root_0 = null;

		Token COMMA1419 = null;
		MySQLParser.index_name_return index_name1418 = null;

		MySQLParser.index_name_return index_name1420 = null;

		Object COMMA1419_tree = null;

		try {
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:1029:11: ( index_name
			// ( COMMA index_name )* )
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:1030:2: index_name (
			// COMMA index_name )*
			{
				root_0 = (Object) adaptor.nil();

				pushFollow(FOLLOW_index_name_in_index_list9193);
				index_name1418 = index_name();

				state._fsp--;
				if (state.failed)
					return retval;
				if (state.backtracking == 0)
					adaptor.addChild(root_0, index_name1418.getTree());
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:1030:13: ( COMMA
				// index_name )*
				loop489: do {
					int alt489 = 2;
					int LA489_0 = input.LA(1);

					if ((LA489_0 == COMMA)) {
						alt489 = 1;
					}

					switch (alt489) {
					case 1:
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:1030:14:
					// COMMA index_name
					{
						COMMA1419 = (Token) match(input, COMMA,
								FOLLOW_COMMA_in_index_list9196);
						if (state.failed)
							return retval;
						if (state.backtracking == 0) {
							COMMA1419_tree = (Object) adaptor.create(COMMA1419);
							adaptor.addChild(root_0, COMMA1419_tree);
						}
						pushFollow(FOLLOW_index_name_in_index_list9198);
						index_name1420 = index_name();

						state._fsp--;
						if (state.failed)
							return retval;
						if (state.backtracking == 0)
							adaptor.addChild(root_0, index_name1420.getTree());

					}
						break;

					default:
						break loop489;
					}
				} while (true);

			}

			retval.stop = input.LT(-1);

			if (state.backtracking == 0) {

				retval.tree = (Object) adaptor.rulePostProcessing(root_0);
				adaptor.setTokenBoundaries(retval.tree, retval.start,
						retval.stop);
			}
		} catch (RecognitionException re) {
			reportError(re);
			recover(input, re);
			retval.tree = (Object) adaptor.errorNode(input, retval.start,
					input.LT(-1), re);

		} finally {
		}
		return retval;
	}

	// $ANTLR end "index_list"

	public static class partition_clause_return extends ParserRuleReturnScope {
		Object tree;

		public Object getTree() {
			return tree;
		}
	};

	// $ANTLR start "partition_clause"
	// C:\\Users\\grand\\Desktop\\another\\MySQL.g:1032:1: partition_clause :
	// PARTITION_SYM LPAREN partition_names RPAREN ;
	public final MySQLParser.partition_clause_return partition_clause()
			throws RecognitionException {
		MySQLParser.partition_clause_return retval = new MySQLParser.partition_clause_return();
		retval.start = input.LT(1);

		Object root_0 = null;

		Token PARTITION_SYM1421 = null;
		Token LPAREN1422 = null;
		Token RPAREN1424 = null;
		MySQLParser.partition_names_return partition_names1423 = null;

		Object PARTITION_SYM1421_tree = null;
		Object LPAREN1422_tree = null;
		Object RPAREN1424_tree = null;

		try {
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:1032:17: (
			// PARTITION_SYM LPAREN partition_names RPAREN )
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:1033:2: PARTITION_SYM
			// LPAREN partition_names RPAREN
			{
				root_0 = (Object) adaptor.nil();

				PARTITION_SYM1421 = (Token) match(input, PARTITION_SYM,
						FOLLOW_PARTITION_SYM_in_partition_clause9208);
				if (state.failed)
					return retval;
				if (state.backtracking == 0) {
					PARTITION_SYM1421_tree = (Object) adaptor
							.create(PARTITION_SYM1421);
					adaptor.addChild(root_0, PARTITION_SYM1421_tree);
				}
				LPAREN1422 = (Token) match(input, LPAREN,
						FOLLOW_LPAREN_in_partition_clause9210);
				if (state.failed)
					return retval;
				if (state.backtracking == 0) {
					LPAREN1422_tree = (Object) adaptor.create(LPAREN1422);
					adaptor.addChild(root_0, LPAREN1422_tree);
				}
				pushFollow(FOLLOW_partition_names_in_partition_clause9212);
				partition_names1423 = partition_names();

				state._fsp--;
				if (state.failed)
					return retval;
				if (state.backtracking == 0)
					adaptor.addChild(root_0, partition_names1423.getTree());
				RPAREN1424 = (Token) match(input, RPAREN,
						FOLLOW_RPAREN_in_partition_clause9214);
				if (state.failed)
					return retval;
				if (state.backtracking == 0) {
					RPAREN1424_tree = (Object) adaptor.create(RPAREN1424);
					adaptor.addChild(root_0, RPAREN1424_tree);
				}

			}

			retval.stop = input.LT(-1);

			if (state.backtracking == 0) {

				retval.tree = (Object) adaptor.rulePostProcessing(root_0);
				adaptor.setTokenBoundaries(retval.tree, retval.start,
						retval.stop);
			}
		} catch (RecognitionException re) {
			reportError(re);
			recover(input, re);
			retval.tree = (Object) adaptor.errorNode(input, retval.start,
					input.LT(-1), re);

		} finally {
		}
		return retval;
	}

	// $ANTLR end "partition_clause"

	public static class partition_names_return extends ParserRuleReturnScope {
		Object tree;

		public Object getTree() {
			return tree;
		}
	};

	// $ANTLR start "partition_names"
	// C:\\Users\\grand\\Desktop\\another\\MySQL.g:1035:1: partition_names :
	// partition_name ( COMMA partition_name )* ;
	public final MySQLParser.partition_names_return partition_names()
			throws RecognitionException {
		MySQLParser.partition_names_return retval = new MySQLParser.partition_names_return();
		retval.start = input.LT(1);

		Object root_0 = null;

		Token COMMA1426 = null;
		MySQLParser.partition_name_return partition_name1425 = null;

		MySQLParser.partition_name_return partition_name1427 = null;

		Object COMMA1426_tree = null;

		try {
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:1035:16: (
			// partition_name ( COMMA partition_name )* )
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:1035:18:
			// partition_name ( COMMA partition_name )*
			{
				root_0 = (Object) adaptor.nil();

				pushFollow(FOLLOW_partition_name_in_partition_names9221);
				partition_name1425 = partition_name();

				state._fsp--;
				if (state.failed)
					return retval;
				if (state.backtracking == 0)
					adaptor.addChild(root_0, partition_name1425.getTree());
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:1035:33: ( COMMA
				// partition_name )*
				loop490: do {
					int alt490 = 2;
					int LA490_0 = input.LA(1);

					if ((LA490_0 == COMMA)) {
						int LA490_1 = input.LA(2);

						if ((LA490_1 == ID)) {
							alt490 = 1;
						}

					}

					switch (alt490) {
					case 1:
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:1035:34:
					// COMMA partition_name
					{
						COMMA1426 = (Token) match(input, COMMA,
								FOLLOW_COMMA_in_partition_names9224);
						if (state.failed)
							return retval;
						pushFollow(FOLLOW_partition_name_in_partition_names9227);
						partition_name1427 = partition_name();

						state._fsp--;
						if (state.failed)
							return retval;
						if (state.backtracking == 0)
							adaptor.addChild(root_0,
									partition_name1427.getTree());

					}
						break;

					default:
						break loop490;
					}
				} while (true);

			}

			retval.stop = input.LT(-1);

			if (state.backtracking == 0) {

				retval.tree = (Object) adaptor.rulePostProcessing(root_0);
				adaptor.setTokenBoundaries(retval.tree, retval.start,
						retval.stop);
			}
		} catch (RecognitionException re) {
			reportError(re);
			recover(input, re);
			retval.tree = (Object) adaptor.errorNode(input, retval.start,
					input.LT(-1), re);

		} finally {
		}
		return retval;
	}

	// $ANTLR end "partition_names"

	// $ANTLR start synpred42_MySQL
	public final void synpred42_MySQL_fragment() throws RecognitionException {
		// C:\\Users\\grand\\Desktop\\another\\MySQL.g:114:15: ( column_spec )
		// C:\\Users\\grand\\Desktop\\another\\MySQL.g:114:15: column_spec
		{
			pushFollow(FOLLOW_column_spec_in_synpred42_MySQL744);
			column_spec();

			state._fsp--;
			if (state.failed)
				return;

		}
	}

	// $ANTLR end synpred42_MySQL

	// $ANTLR start synpred43_MySQL
	public final void synpred43_MySQL_fragment() throws RecognitionException {
		// C:\\Users\\grand\\Desktop\\another\\MySQL.g:114:29: ( INTEGER_NUM )
		// C:\\Users\\grand\\Desktop\\another\\MySQL.g:114:29: INTEGER_NUM
		{
			match(input, INTEGER_NUM, FOLLOW_INTEGER_NUM_in_synpred43_MySQL748);
			if (state.failed)
				return;

		}
	}

	// $ANTLR end synpred43_MySQL

	// $ANTLR start synpred55_MySQL
	public final void synpred55_MySQL_fragment() throws RecognitionException {
		// C:\\Users\\grand\\Desktop\\another\\MySQL.g:154:2: ( ( column_spec (
		// alias )? ) )
		// C:\\Users\\grand\\Desktop\\another\\MySQL.g:154:2: ( column_spec (
		// alias )? )
		{
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:154:2: ( column_spec
			// ( alias )? )
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:154:4: column_spec (
			// alias )?
			{
				pushFollow(FOLLOW_column_spec_in_synpred55_MySQL1023);
				column_spec();

				state._fsp--;
				if (state.failed)
					return;
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:154:16: ( alias
				// )?
				int alt498 = 2;
				int LA498_0 = input.LA(1);

				if ((LA498_0 == AS_SYM || LA498_0 == ID)) {
					alt498 = 1;
				}
				switch (alt498) {
				case 1:
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:154:18: alias
				{
					pushFollow(FOLLOW_alias_in_synpred55_MySQL1027);
					alias();

					state._fsp--;
					if (state.failed)
						return;

				}
					break;

				}

			}

		}
	}

	// $ANTLR end synpred55_MySQL

	// $ANTLR start synpred86_MySQL
	public final void synpred86_MySQL_fragment() throws RecognitionException {
		// C:\\Users\\grand\\Desktop\\another\\MySQL.g:212:29: ( bit_expr )
		// C:\\Users\\grand\\Desktop\\another\\MySQL.g:212:29: bit_expr
		{
			pushFollow(FOLLOW_bit_expr_in_synpred86_MySQL1462);
			bit_expr();

			state._fsp--;
			if (state.failed)
				return;

		}
	}

	// $ANTLR end synpred86_MySQL

	// $ANTLR start synpred87_MySQL
	public final void synpred87_MySQL_fragment() throws RecognitionException {
		// C:\\Users\\grand\\Desktop\\another\\MySQL.g:212:56: ( bit_expr )
		// C:\\Users\\grand\\Desktop\\another\\MySQL.g:212:56: bit_expr
		{
			pushFollow(FOLLOW_bit_expr_in_synpred87_MySQL1472);
			bit_expr();

			state._fsp--;
			if (state.failed)
				return;

		}
	}

	// $ANTLR end synpred87_MySQL

	// $ANTLR start synpred91_MySQL
	public final void synpred91_MySQL_fragment() throws RecognitionException {
		// C:\\Users\\grand\\Desktop\\another\\MySQL.g:225:3: ( expression )
		// C:\\Users\\grand\\Desktop\\another\\MySQL.g:225:3: expression
		{
			pushFollow(FOLLOW_expression_in_synpred91_MySQL1548);
			expression();

			state._fsp--;
			if (state.failed)
				return;

		}
	}

	// $ANTLR end synpred91_MySQL

	// $ANTLR start synpred94_MySQL
	public final void synpred94_MySQL_fragment() throws RecognitionException {
		// C:\\Users\\grand\\Desktop\\another\\MySQL.g:240:2: (
		// single_table_update_statement )
		// C:\\Users\\grand\\Desktop\\another\\MySQL.g:240:2:
		// single_table_update_statement
		{
			pushFollow(FOLLOW_single_table_update_statement_in_synpred94_MySQL1629);
			single_table_update_statement();

			state._fsp--;
			if (state.failed)
				return;

		}
	}

	// $ANTLR end synpred94_MySQL

	// $ANTLR start synpred338_MySQL
	public final void synpred338_MySQL_fragment() throws RecognitionException {
		// C:\\Users\\grand\\Desktop\\another\\MySQL.g:377:16: ( ( COMMA )?
		// table_option )
		// C:\\Users\\grand\\Desktop\\another\\MySQL.g:377:16: ( COMMA )?
		// table_option
		{
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:377:16: ( COMMA )?
			int alt642 = 2;
			int LA642_0 = input.LA(1);

			if ((LA642_0 == COMMA)) {
				alt642 = 1;
			}
			switch (alt642) {
			case 1:
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:377:18: COMMA
			{
				match(input, COMMA, FOLLOW_COMMA_in_synpred338_MySQL3753);
				if (state.failed)
					return;

			}
				break;

			}

			pushFollow(FOLLOW_table_option_in_synpred338_MySQL3759);
			table_option();

			state._fsp--;
			if (state.failed)
				return;

		}
	}

	// $ANTLR end synpred338_MySQL

	// $ANTLR start synpred443_MySQL
	public final void synpred443_MySQL_fragment() throws RecognitionException {
		// C:\\Users\\grand\\Desktop\\another\\MySQL.g:464:4: ( table_options )
		// C:\\Users\\grand\\Desktop\\another\\MySQL.g:464:4: table_options
		{
			pushFollow(FOLLOW_table_options_in_synpred443_MySQL4779);
			table_options();

			state._fsp--;
			if (state.failed)
				return;

		}
	}

	// $ANTLR end synpred443_MySQL

	// $ANTLR start synpred522_MySQL
	public final void synpred522_MySQL_fragment() throws RecognitionException {
		// C:\\Users\\grand\\Desktop\\another\\MySQL.g:491:4: ( ( ( DEFAULT )?
		// CHARACTER_SYM SET_SYM ( EQ_SYM )? charset_name ( COLLATE_SYM ( EQ_SYM
		// )? collation_name )? ) )
		// C:\\Users\\grand\\Desktop\\another\\MySQL.g:491:4: ( ( DEFAULT )?
		// CHARACTER_SYM SET_SYM ( EQ_SYM )? charset_name ( COLLATE_SYM ( EQ_SYM
		// )? collation_name )? )
		{
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:491:4: ( ( DEFAULT )?
			// CHARACTER_SYM SET_SYM ( EQ_SYM )? charset_name ( COLLATE_SYM (
			// EQ_SYM )? collation_name )? )
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:491:6: ( DEFAULT )?
			// CHARACTER_SYM SET_SYM ( EQ_SYM )? charset_name ( COLLATE_SYM (
			// EQ_SYM )? collation_name )?
			{
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:491:6: ( DEFAULT
				// )?
				int alt735 = 2;
				int LA735_0 = input.LA(1);

				if ((LA735_0 == DEFAULT)) {
					alt735 = 1;
				}
				switch (alt735) {
				case 1:
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:491:7: DEFAULT
				{
					match(input, DEFAULT,
							FOLLOW_DEFAULT_in_synpred522_MySQL5383);
					if (state.failed)
						return;

				}
					break;

				}

				match(input, CHARACTER_SYM,
						FOLLOW_CHARACTER_SYM_in_synpred522_MySQL5387);
				if (state.failed)
					return;
				match(input, SET_SYM, FOLLOW_SET_SYM_in_synpred522_MySQL5389);
				if (state.failed)
					return;
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:491:39: ( EQ_SYM
				// )?
				int alt736 = 2;
				int LA736_0 = input.LA(1);

				if ((LA736_0 == EQ_SYM)) {
					alt736 = 1;
				}
				switch (alt736) {
				case 1:
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:491:40: EQ_SYM
				{
					match(input, EQ_SYM, FOLLOW_EQ_SYM_in_synpred522_MySQL5392);
					if (state.failed)
						return;

				}
					break;

				}

				pushFollow(FOLLOW_charset_name_in_synpred522_MySQL5396);
				charset_name();

				state._fsp--;
				if (state.failed)
					return;
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:491:62: (
				// COLLATE_SYM ( EQ_SYM )? collation_name )?
				int alt738 = 2;
				int LA738_0 = input.LA(1);

				if ((LA738_0 == COLLATE_SYM)) {
					alt738 = 1;
				}
				switch (alt738) {
				case 1:
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:491:63:
				// COLLATE_SYM ( EQ_SYM )? collation_name
				{
					match(input, COLLATE_SYM,
							FOLLOW_COLLATE_SYM_in_synpred522_MySQL5399);
					if (state.failed)
						return;
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:491:75: (
					// EQ_SYM )?
					int alt737 = 2;
					int LA737_0 = input.LA(1);

					if ((LA737_0 == EQ_SYM)) {
						alt737 = 1;
					}
					switch (alt737) {
					case 1:
					// C:\\Users\\grand\\Desktop\\another\\MySQL.g:491:76:
					// EQ_SYM
					{
						match(input, EQ_SYM,
								FOLLOW_EQ_SYM_in_synpred522_MySQL5402);
						if (state.failed)
							return;

					}
						break;

					}

					pushFollow(FOLLOW_collation_name_in_synpred522_MySQL5406);
					collation_name();

					state._fsp--;
					if (state.failed)
						return;

				}
					break;

				}

			}

		}
	}

	// $ANTLR end synpred522_MySQL

	// $ANTLR start synpred627_MySQL
	public final void synpred627_MySQL_fragment() throws RecognitionException {
		// C:\\Users\\grand\\Desktop\\another\\MySQL.g:629:2: ( ( IN_SYM NATURAL
		// LANGUAGE MODE_SYM ) )
		// C:\\Users\\grand\\Desktop\\another\\MySQL.g:629:2: ( IN_SYM NATURAL
		// LANGUAGE MODE_SYM )
		{
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:629:2: ( IN_SYM
			// NATURAL LANGUAGE MODE_SYM )
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:629:3: IN_SYM NATURAL
			// LANGUAGE MODE_SYM
			{
				match(input, IN_SYM, FOLLOW_IN_SYM_in_synpred627_MySQL6406);
				if (state.failed)
					return;
				match(input, NATURAL, FOLLOW_NATURAL_in_synpred627_MySQL6408);
				if (state.failed)
					return;
				match(input, LANGUAGE, FOLLOW_LANGUAGE_in_synpred627_MySQL6410);
				if (state.failed)
					return;
				match(input, MODE_SYM, FOLLOW_MODE_SYM_in_synpred627_MySQL6412);
				if (state.failed)
					return;

			}

		}
	}

	// $ANTLR end synpred627_MySQL

	// $ANTLR start synpred628_MySQL
	public final void synpred628_MySQL_fragment() throws RecognitionException {
		// C:\\Users\\grand\\Desktop\\another\\MySQL.g:630:4: ( ( IN_SYM NATURAL
		// LANGUAGE MODE_SYM WITH QUERY_SYM EXPANSION_SYM ) )
		// C:\\Users\\grand\\Desktop\\another\\MySQL.g:630:4: ( IN_SYM NATURAL
		// LANGUAGE MODE_SYM WITH QUERY_SYM EXPANSION_SYM )
		{
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:630:4: ( IN_SYM
			// NATURAL LANGUAGE MODE_SYM WITH QUERY_SYM EXPANSION_SYM )
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:630:5: IN_SYM NATURAL
			// LANGUAGE MODE_SYM WITH QUERY_SYM EXPANSION_SYM
			{
				match(input, IN_SYM, FOLLOW_IN_SYM_in_synpred628_MySQL6419);
				if (state.failed)
					return;
				match(input, NATURAL, FOLLOW_NATURAL_in_synpred628_MySQL6421);
				if (state.failed)
					return;
				match(input, LANGUAGE, FOLLOW_LANGUAGE_in_synpred628_MySQL6423);
				if (state.failed)
					return;
				match(input, MODE_SYM, FOLLOW_MODE_SYM_in_synpred628_MySQL6425);
				if (state.failed)
					return;
				match(input, WITH, FOLLOW_WITH_in_synpred628_MySQL6427);
				if (state.failed)
					return;
				match(input, QUERY_SYM,
						FOLLOW_QUERY_SYM_in_synpred628_MySQL6429);
				if (state.failed)
					return;
				match(input, EXPANSION_SYM,
						FOLLOW_EXPANSION_SYM_in_synpred628_MySQL6431);
				if (state.failed)
					return;

			}

		}
	}

	// $ANTLR end synpred628_MySQL

	// $ANTLR start synpred660_MySQL
	public final void synpred660_MySQL_fragment() throws RecognitionException {
		// C:\\Users\\grand\\Desktop\\another\\MySQL.g:690:4: ( char_functions )
		// C:\\Users\\grand\\Desktop\\another\\MySQL.g:690:4: char_functions
		{
			pushFollow(FOLLOW_char_functions_in_synpred660_MySQL6711);
			char_functions();

			state._fsp--;
			if (state.failed)
				return;

		}
	}

	// $ANTLR end synpred660_MySQL

	// $ANTLR start synpred841_MySQL
	public final void synpred841_MySQL_fragment() throws RecognitionException {
		// C:\\Users\\grand\\Desktop\\another\\MySQL.g:892:27: ( OR_SYM
		// exp_factor1 )
		// C:\\Users\\grand\\Desktop\\another\\MySQL.g:892:27: OR_SYM
		// exp_factor1
		{
			match(input, OR_SYM, FOLLOW_OR_SYM_in_synpred841_MySQL7812);
			if (state.failed)
				return;
			pushFollow(FOLLOW_exp_factor1_in_synpred841_MySQL7815);
			exp_factor1();

			state._fsp--;
			if (state.failed)
				return;

		}
	}

	// $ANTLR end synpred841_MySQL

	// $ANTLR start synpred842_MySQL
	public final void synpred842_MySQL_fragment() throws RecognitionException {
		// C:\\Users\\grand\\Desktop\\another\\MySQL.g:893:28: ( XOR exp_factor2
		// )
		// C:\\Users\\grand\\Desktop\\another\\MySQL.g:893:28: XOR exp_factor2
		{
			match(input, XOR, FOLLOW_XOR_in_synpred842_MySQL7829);
			if (state.failed)
				return;
			pushFollow(FOLLOW_exp_factor2_in_synpred842_MySQL7832);
			exp_factor2();

			state._fsp--;
			if (state.failed)
				return;

		}
	}

	// $ANTLR end synpred842_MySQL

	// $ANTLR start synpred843_MySQL
	public final void synpred843_MySQL_fragment() throws RecognitionException {
		// C:\\Users\\grand\\Desktop\\another\\MySQL.g:894:28: ( AND_SYM
		// exp_factor3 )
		// C:\\Users\\grand\\Desktop\\another\\MySQL.g:894:28: AND_SYM
		// exp_factor3
		{
			match(input, AND_SYM, FOLLOW_AND_SYM_in_synpred843_MySQL7846);
			if (state.failed)
				return;
			pushFollow(FOLLOW_exp_factor3_in_synpred843_MySQL7849);
			exp_factor3();

			state._fsp--;
			if (state.failed)
				return;

		}
	}

	// $ANTLR end synpred843_MySQL

	// $ANTLR start synpred844_MySQL
	public final void synpred844_MySQL_fragment() throws RecognitionException {
		// C:\\Users\\grand\\Desktop\\another\\MySQL.g:895:15: ( NOT_SYM )
		// C:\\Users\\grand\\Desktop\\another\\MySQL.g:895:15: NOT_SYM
		{
			match(input, NOT_SYM, FOLLOW_NOT_SYM_in_synpred844_MySQL7860);
			if (state.failed)
				return;

		}
	}

	// $ANTLR end synpred844_MySQL

	// $ANTLR start synpred847_MySQL
	public final void synpred847_MySQL_fragment() throws RecognitionException {
		// C:\\Users\\grand\\Desktop\\another\\MySQL.g:896:29: ( IS_SYM (
		// NOT_SYM )? ( boolean_literal | NULL_SYM ) )
		// C:\\Users\\grand\\Desktop\\another\\MySQL.g:896:29: IS_SYM ( NOT_SYM
		// )? ( boolean_literal | NULL_SYM )
		{
			match(input, IS_SYM, FOLLOW_IS_SYM_in_synpred847_MySQL7876);
			if (state.failed)
				return;
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:896:37: ( NOT_SYM )?
			int alt755 = 2;
			int LA755_0 = input.LA(1);

			if ((LA755_0 == NOT_SYM)) {
				alt755 = 1;
			}
			switch (alt755) {
			case 1:
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:896:38: NOT_SYM
			{
				match(input, NOT_SYM, FOLLOW_NOT_SYM_in_synpred847_MySQL7880);
				if (state.failed)
					return;

			}
				break;

			}

			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:896:49: (
			// boolean_literal | NULL_SYM )
			int alt756 = 2;
			int LA756_0 = input.LA(1);

			if (((LA756_0 >= TRUE_SYM && LA756_0 <= FALSE_SYM))) {
				alt756 = 1;
			} else if ((LA756_0 == NULL_SYM)) {
				alt756 = 2;
			} else {
				if (state.backtracking > 0) {
					state.failed = true;
					return;
				}
				NoViableAltException nvae = new NoViableAltException("", 756,
						0, input);

				throw nvae;
			}
			switch (alt756) {
			case 1:
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:896:50:
			// boolean_literal
			{
				pushFollow(FOLLOW_boolean_literal_in_synpred847_MySQL7886);
				boolean_literal();

				state._fsp--;
				if (state.failed)
					return;

			}
				break;
			case 2:
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:896:66: NULL_SYM
			{
				match(input, NULL_SYM, FOLLOW_NULL_SYM_in_synpred847_MySQL7888);
				if (state.failed)
					return;

			}
				break;

			}

		}
	}

	// $ANTLR end synpred847_MySQL

	// $ANTLR start synpred848_MySQL
	public final void synpred848_MySQL_fragment() throws RecognitionException {
		// C:\\Users\\grand\\Desktop\\another\\MySQL.g:898:4: ( ( predicate
		// relational_op predicate ) )
		// C:\\Users\\grand\\Desktop\\another\\MySQL.g:898:4: ( predicate
		// relational_op predicate )
		{
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:898:4: ( predicate
			// relational_op predicate )
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:898:6: predicate
			// relational_op predicate
			{
				pushFollow(FOLLOW_predicate_in_synpred848_MySQL7904);
				predicate();

				state._fsp--;
				if (state.failed)
					return;
				pushFollow(FOLLOW_relational_op_in_synpred848_MySQL7906);
				relational_op();

				state._fsp--;
				if (state.failed)
					return;
				pushFollow(FOLLOW_predicate_in_synpred848_MySQL7908);
				predicate();

				state._fsp--;
				if (state.failed)
					return;

			}

		}
	}

	// $ANTLR end synpred848_MySQL

	// $ANTLR start synpred851_MySQL
	public final void synpred851_MySQL_fragment() throws RecognitionException {
		// C:\\Users\\grand\\Desktop\\another\\MySQL.g:899:4: ( ( predicate
		// relational_op ( ALL | ANY )? subquery ) )
		// C:\\Users\\grand\\Desktop\\another\\MySQL.g:899:4: ( predicate
		// relational_op ( ALL | ANY )? subquery )
		{
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:899:4: ( predicate
			// relational_op ( ALL | ANY )? subquery )
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:899:6: predicate
			// relational_op ( ALL | ANY )? subquery
			{
				pushFollow(FOLLOW_predicate_in_synpred851_MySQL7926);
				predicate();

				state._fsp--;
				if (state.failed)
					return;
				pushFollow(FOLLOW_relational_op_in_synpred851_MySQL7928);
				relational_op();

				state._fsp--;
				if (state.failed)
					return;
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:899:31: ( ALL |
				// ANY )?
				int alt757 = 2;
				int LA757_0 = input.LA(1);

				if ((LA757_0 == ALL || LA757_0 == ANY)) {
					alt757 = 1;
				}
				switch (alt757) {
				case 1:
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:
				{
					if (input.LA(1) == ALL || input.LA(1) == ANY) {
						input.consume();
						state.errorRecovery = false;
						state.failed = false;
					} else {
						if (state.backtracking > 0) {
							state.failed = true;
							return;
						}
						MismatchedSetException mse = new MismatchedSetException(
								null, input);
						throw mse;
					}

				}
					break;

				}

				pushFollow(FOLLOW_subquery_in_synpred851_MySQL7944);
				subquery();

				state._fsp--;
				if (state.failed)
					return;

			}

		}
	}

	// $ANTLR end synpred851_MySQL

	// $ANTLR start synpred853_MySQL
	public final void synpred853_MySQL_fragment() throws RecognitionException {
		// C:\\Users\\grand\\Desktop\\another\\MySQL.g:900:4: ( ( ( NOT_SYM )?
		// EXISTS subquery ) )
		// C:\\Users\\grand\\Desktop\\another\\MySQL.g:900:4: ( ( NOT_SYM )?
		// EXISTS subquery )
		{
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:900:4: ( ( NOT_SYM )?
			// EXISTS subquery )
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:900:6: ( NOT_SYM )?
			// EXISTS subquery
			{
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:900:6: ( NOT_SYM
				// )?
				int alt758 = 2;
				int LA758_0 = input.LA(1);

				if ((LA758_0 == NOT_SYM)) {
					alt758 = 1;
				}
				switch (alt758) {
				case 1:
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:900:7: NOT_SYM
				{
					match(input, NOT_SYM,
							FOLLOW_NOT_SYM_in_synpred853_MySQL7954);
					if (state.failed)
						return;

				}
					break;

				}

				match(input, EXISTS, FOLLOW_EXISTS_in_synpred853_MySQL7959);
				if (state.failed)
					return;
				pushFollow(FOLLOW_subquery_in_synpred853_MySQL7962);
				subquery();

				state._fsp--;
				if (state.failed)
					return;

			}

		}
	}

	// $ANTLR end synpred853_MySQL

	// $ANTLR start synpred856_MySQL
	public final void synpred856_MySQL_fragment() throws RecognitionException {
		// C:\\Users\\grand\\Desktop\\another\\MySQL.g:904:4: ( ( bit_expr (
		// NOT_SYM )? IN_SYM ( subquery | expression_list ) ) )
		// C:\\Users\\grand\\Desktop\\another\\MySQL.g:904:4: ( bit_expr (
		// NOT_SYM )? IN_SYM ( subquery | expression_list ) )
		{
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:904:4: ( bit_expr (
			// NOT_SYM )? IN_SYM ( subquery | expression_list ) )
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:904:6: bit_expr (
			// NOT_SYM )? IN_SYM ( subquery | expression_list )
			{
				pushFollow(FOLLOW_bit_expr_in_synpred856_MySQL7983);
				bit_expr();

				state._fsp--;
				if (state.failed)
					return;
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:904:15: ( NOT_SYM
				// )?
				int alt759 = 2;
				int LA759_0 = input.LA(1);

				if ((LA759_0 == NOT_SYM)) {
					alt759 = 1;
				}
				switch (alt759) {
				case 1:
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:904:16: NOT_SYM
				{
					match(input, NOT_SYM,
							FOLLOW_NOT_SYM_in_synpred856_MySQL7986);
					if (state.failed)
						return;

				}
					break;

				}

				match(input, IN_SYM, FOLLOW_IN_SYM_in_synpred856_MySQL7991);
				if (state.failed)
					return;
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:904:35: (
				// subquery | expression_list )
				int alt760 = 2;
				int LA760_0 = input.LA(1);

				if ((LA760_0 == LPAREN)) {
					int LA760_1 = input.LA(2);

					if ((LA760_1 == INTEGER_NUM || LA760_1 == LPAREN
							|| LA760_1 == INSERT || LA760_1 == VALUES
							|| LA760_1 == DEFAULT
							|| (LA760_1 >= IF && LA760_1 <= EXISTS)
							|| LA760_1 == TEXT_STRING || LA760_1 == NULL_SYM
							|| (LA760_1 >= DATE_SYM && LA760_1 <= TIMESTAMP)
							|| (LA760_1 >= YEAR && LA760_1 <= CHAR)
							|| LA760_1 == BINARY || LA760_1 == MATCH
							|| LA760_1 == PASSWORD || LA760_1 == CONVERT_SYM
							|| LA760_1 == TRUNCATE || LA760_1 == REPLACE
							|| LA760_1 == CURRENT_USER || LA760_1 == ASCII_SYM
							|| (LA760_1 >= SECOND && LA760_1 <= HOUR)
							|| (LA760_1 >= WEEK && LA760_1 <= QUARTER)
							|| (LA760_1 >= PLUS && LA760_1 <= ID)
							|| (LA760_1 >= NEGATION && LA760_1 <= CASE_SYM) || LA760_1 == INTERVAL_SYM)) {
						alt760 = 2;
					} else if ((LA760_1 == SELECT)) {
						alt760 = 1;
					} else {
						if (state.backtracking > 0) {
							state.failed = true;
							return;
						}
						NoViableAltException nvae = new NoViableAltException(
								"", 760, 1, input);

						throw nvae;
					}
				} else {
					if (state.backtracking > 0) {
						state.failed = true;
						return;
					}
					NoViableAltException nvae = new NoViableAltException("",
							760, 0, input);

					throw nvae;
				}
				switch (alt760) {
				case 1:
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:904:36: subquery
				{
					pushFollow(FOLLOW_subquery_in_synpred856_MySQL7995);
					subquery();

					state._fsp--;
					if (state.failed)
						return;

				}
					break;
				case 2:
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:904:47:
				// expression_list
				{
					pushFollow(FOLLOW_expression_list_in_synpred856_MySQL7999);
					expression_list();

					state._fsp--;
					if (state.failed)
						return;

				}
					break;

				}

			}

		}
	}

	// $ANTLR end synpred856_MySQL

	// $ANTLR start synpred858_MySQL
	public final void synpred858_MySQL_fragment() throws RecognitionException {
		// C:\\Users\\grand\\Desktop\\another\\MySQL.g:905:4: ( ( bit_expr (
		// NOT_SYM )? BETWEEN bit_expr AND_SYM predicate ) )
		// C:\\Users\\grand\\Desktop\\another\\MySQL.g:905:4: ( bit_expr (
		// NOT_SYM )? BETWEEN bit_expr AND_SYM predicate )
		{
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:905:4: ( bit_expr (
			// NOT_SYM )? BETWEEN bit_expr AND_SYM predicate )
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:905:6: bit_expr (
			// NOT_SYM )? BETWEEN bit_expr AND_SYM predicate
			{
				pushFollow(FOLLOW_bit_expr_in_synpred858_MySQL8009);
				bit_expr();

				state._fsp--;
				if (state.failed)
					return;
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:905:15: ( NOT_SYM
				// )?
				int alt761 = 2;
				int LA761_0 = input.LA(1);

				if ((LA761_0 == NOT_SYM)) {
					alt761 = 1;
				}
				switch (alt761) {
				case 1:
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:905:16: NOT_SYM
				{
					match(input, NOT_SYM,
							FOLLOW_NOT_SYM_in_synpred858_MySQL8012);
					if (state.failed)
						return;

				}
					break;

				}

				match(input, BETWEEN, FOLLOW_BETWEEN_in_synpred858_MySQL8017);
				if (state.failed)
					return;
				pushFollow(FOLLOW_bit_expr_in_synpred858_MySQL8020);
				bit_expr();

				state._fsp--;
				if (state.failed)
					return;
				match(input, AND_SYM, FOLLOW_AND_SYM_in_synpred858_MySQL8022);
				if (state.failed)
					return;
				pushFollow(FOLLOW_predicate_in_synpred858_MySQL8025);
				predicate();

				state._fsp--;
				if (state.failed)
					return;

			}

		}
	}

	// $ANTLR end synpred858_MySQL

	// $ANTLR start synpred859_MySQL
	public final void synpred859_MySQL_fragment() throws RecognitionException {
		// C:\\Users\\grand\\Desktop\\another\\MySQL.g:906:4: ( ( bit_expr
		// SOUNDS_SYM LIKE_SYM bit_expr ) )
		// C:\\Users\\grand\\Desktop\\another\\MySQL.g:906:4: ( bit_expr
		// SOUNDS_SYM LIKE_SYM bit_expr )
		{
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:906:4: ( bit_expr
			// SOUNDS_SYM LIKE_SYM bit_expr )
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:906:6: bit_expr
			// SOUNDS_SYM LIKE_SYM bit_expr
			{
				pushFollow(FOLLOW_bit_expr_in_synpred859_MySQL8035);
				bit_expr();

				state._fsp--;
				if (state.failed)
					return;
				match(input, SOUNDS_SYM,
						FOLLOW_SOUNDS_SYM_in_synpred859_MySQL8037);
				if (state.failed)
					return;
				match(input, LIKE_SYM, FOLLOW_LIKE_SYM_in_synpred859_MySQL8040);
				if (state.failed)
					return;
				pushFollow(FOLLOW_bit_expr_in_synpred859_MySQL8043);
				bit_expr();

				state._fsp--;
				if (state.failed)
					return;

			}

		}
	}

	// $ANTLR end synpred859_MySQL

	// $ANTLR start synpred861_MySQL
	public final void synpred861_MySQL_fragment() throws RecognitionException {
		// C:\\Users\\grand\\Desktop\\another\\MySQL.g:907:50: ( ESCAPE_SYM
		// simple_expr )
		// C:\\Users\\grand\\Desktop\\another\\MySQL.g:907:50: ESCAPE_SYM
		// simple_expr
		{
			match(input, ESCAPE_SYM, FOLLOW_ESCAPE_SYM_in_synpred861_MySQL8067);
			if (state.failed)
				return;
			pushFollow(FOLLOW_simple_expr_in_synpred861_MySQL8070);
			simple_expr();

			state._fsp--;
			if (state.failed)
				return;

		}
	}

	// $ANTLR end synpred861_MySQL

	// $ANTLR start synpred862_MySQL
	public final void synpred862_MySQL_fragment() throws RecognitionException {
		// C:\\Users\\grand\\Desktop\\another\\MySQL.g:907:4: ( ( bit_expr (
		// NOT_SYM )? LIKE_SYM simple_expr ( ESCAPE_SYM simple_expr )? ) )
		// C:\\Users\\grand\\Desktop\\another\\MySQL.g:907:4: ( bit_expr (
		// NOT_SYM )? LIKE_SYM simple_expr ( ESCAPE_SYM simple_expr )? )
		{
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:907:4: ( bit_expr (
			// NOT_SYM )? LIKE_SYM simple_expr ( ESCAPE_SYM simple_expr )? )
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:907:6: bit_expr (
			// NOT_SYM )? LIKE_SYM simple_expr ( ESCAPE_SYM simple_expr )?
			{
				pushFollow(FOLLOW_bit_expr_in_synpred862_MySQL8053);
				bit_expr();

				state._fsp--;
				if (state.failed)
					return;
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:907:15: ( NOT_SYM
				// )?
				int alt762 = 2;
				int LA762_0 = input.LA(1);

				if ((LA762_0 == NOT_SYM)) {
					alt762 = 1;
				}
				switch (alt762) {
				case 1:
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:907:16: NOT_SYM
				{
					match(input, NOT_SYM,
							FOLLOW_NOT_SYM_in_synpred862_MySQL8056);
					if (state.failed)
						return;

				}
					break;

				}

				match(input, LIKE_SYM, FOLLOW_LIKE_SYM_in_synpred862_MySQL8061);
				if (state.failed)
					return;
				pushFollow(FOLLOW_simple_expr_in_synpred862_MySQL8064);
				simple_expr();

				state._fsp--;
				if (state.failed)
					return;
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:907:49: (
				// ESCAPE_SYM simple_expr )?
				int alt763 = 2;
				int LA763_0 = input.LA(1);

				if ((LA763_0 == ESCAPE_SYM)) {
					alt763 = 1;
				}
				switch (alt763) {
				case 1:
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:907:50:
				// ESCAPE_SYM simple_expr
				{
					match(input, ESCAPE_SYM,
							FOLLOW_ESCAPE_SYM_in_synpred862_MySQL8067);
					if (state.failed)
						return;
					pushFollow(FOLLOW_simple_expr_in_synpred862_MySQL8070);
					simple_expr();

					state._fsp--;
					if (state.failed)
						return;

				}
					break;

				}

			}

		}
	}

	// $ANTLR end synpred862_MySQL

	// $ANTLR start synpred864_MySQL
	public final void synpred864_MySQL_fragment() throws RecognitionException {
		// C:\\Users\\grand\\Desktop\\another\\MySQL.g:908:4: ( ( bit_expr (
		// NOT_SYM )? REGEXP bit_expr ) )
		// C:\\Users\\grand\\Desktop\\another\\MySQL.g:908:4: ( bit_expr (
		// NOT_SYM )? REGEXP bit_expr )
		{
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:908:4: ( bit_expr (
			// NOT_SYM )? REGEXP bit_expr )
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:908:6: bit_expr (
			// NOT_SYM )? REGEXP bit_expr
			{
				pushFollow(FOLLOW_bit_expr_in_synpred864_MySQL8081);
				bit_expr();

				state._fsp--;
				if (state.failed)
					return;
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:908:15: ( NOT_SYM
				// )?
				int alt764 = 2;
				int LA764_0 = input.LA(1);

				if ((LA764_0 == NOT_SYM)) {
					alt764 = 1;
				}
				switch (alt764) {
				case 1:
				// C:\\Users\\grand\\Desktop\\another\\MySQL.g:908:16: NOT_SYM
				{
					match(input, NOT_SYM,
							FOLLOW_NOT_SYM_in_synpred864_MySQL8084);
					if (state.failed)
						return;

				}
					break;

				}

				match(input, REGEXP, FOLLOW_REGEXP_in_synpred864_MySQL8089);
				if (state.failed)
					return;
				pushFollow(FOLLOW_bit_expr_in_synpred864_MySQL8092);
				bit_expr();

				state._fsp--;
				if (state.failed)
					return;

			}

		}
	}

	// $ANTLR end synpred864_MySQL

	// $ANTLR start synpred865_MySQL
	public final void synpred865_MySQL_fragment() throws RecognitionException {
		// C:\\Users\\grand\\Desktop\\another\\MySQL.g:913:12: ( VERTBAR factor1
		// )
		// C:\\Users\\grand\\Desktop\\another\\MySQL.g:913:12: VERTBAR factor1
		{
			match(input, VERTBAR, FOLLOW_VERTBAR_in_synpred865_MySQL8119);
			if (state.failed)
				return;
			pushFollow(FOLLOW_factor1_in_synpred865_MySQL8122);
			factor1();

			state._fsp--;
			if (state.failed)
				return;

		}
	}

	// $ANTLR end synpred865_MySQL

	// $ANTLR start synpred866_MySQL
	public final void synpred866_MySQL_fragment() throws RecognitionException {
		// C:\\Users\\grand\\Desktop\\another\\MySQL.g:915:12: ( BITAND factor2
		// )
		// C:\\Users\\grand\\Desktop\\another\\MySQL.g:915:12: BITAND factor2
		{
			match(input, BITAND, FOLLOW_BITAND_in_synpred866_MySQL8137);
			if (state.failed)
				return;
			pushFollow(FOLLOW_factor2_in_synpred866_MySQL8140);
			factor2();

			state._fsp--;
			if (state.failed)
				return;

		}
	}

	// $ANTLR end synpred866_MySQL

	// $ANTLR start synpred868_MySQL
	public final void synpred868_MySQL_fragment() throws RecognitionException {
		// C:\\Users\\grand\\Desktop\\another\\MySQL.g:917:12: ( ( SHIFT_LEFT |
		// SHIFT_RIGHT ) factor3 )
		// C:\\Users\\grand\\Desktop\\another\\MySQL.g:917:12: ( SHIFT_LEFT |
		// SHIFT_RIGHT ) factor3
		{
			if ((input.LA(1) >= SHIFT_LEFT && input.LA(1) <= SHIFT_RIGHT)) {
				input.consume();
				state.errorRecovery = false;
				state.failed = false;
			} else {
				if (state.backtracking > 0) {
					state.failed = true;
					return;
				}
				MismatchedSetException mse = new MismatchedSetException(null,
						input);
				throw mse;
			}

			pushFollow(FOLLOW_factor3_in_synpred868_MySQL8163);
			factor3();

			state._fsp--;
			if (state.failed)
				return;

		}
	}

	// $ANTLR end synpred868_MySQL

	// $ANTLR start synpred870_MySQL
	public final void synpred870_MySQL_fragment() throws RecognitionException {
		// C:\\Users\\grand\\Desktop\\another\\MySQL.g:919:12: ( ( PLUS | MINUS
		// ) factor4 )
		// C:\\Users\\grand\\Desktop\\another\\MySQL.g:919:12: ( PLUS | MINUS )
		// factor4
		{
			if ((input.LA(1) >= PLUS && input.LA(1) <= MINUS)) {
				input.consume();
				state.errorRecovery = false;
				state.failed = false;
			} else {
				if (state.backtracking > 0) {
					state.failed = true;
					return;
				}
				MismatchedSetException mse = new MismatchedSetException(null,
						input);
				throw mse;
			}

			pushFollow(FOLLOW_factor4_in_synpred870_MySQL8186);
			factor4();

			state._fsp--;
			if (state.failed)
				return;

		}
	}

	// $ANTLR end synpred870_MySQL

	// $ANTLR start synpred874_MySQL
	public final void synpred874_MySQL_fragment() throws RecognitionException {
		// C:\\Users\\grand\\Desktop\\another\\MySQL.g:921:12: ( ( ASTERISK |
		// DIVIDE | MOD_SYM | POWER_OP ) factor5 )
		// C:\\Users\\grand\\Desktop\\another\\MySQL.g:921:12: ( ASTERISK |
		// DIVIDE | MOD_SYM | POWER_OP ) factor5
		{
			if (input.LA(1) == ASTERISK
					|| (input.LA(1) >= DIVIDE && input.LA(1) <= POWER_OP)) {
				input.consume();
				state.errorRecovery = false;
				state.failed = false;
			} else {
				if (state.backtracking > 0) {
					state.failed = true;
					return;
				}
				MismatchedSetException mse = new MismatchedSetException(null,
						input);
				throw mse;
			}

			pushFollow(FOLLOW_factor5_in_synpred874_MySQL8215);
			factor5();

			state._fsp--;
			if (state.failed)
				return;

		}
	}

	// $ANTLR end synpred874_MySQL

	// $ANTLR start synpred876_MySQL
	public final void synpred876_MySQL_fragment() throws RecognitionException {
		// C:\\Users\\grand\\Desktop\\another\\MySQL.g:923:12: ( ( PLUS | MINUS
		// ) interval_expr )
		// C:\\Users\\grand\\Desktop\\another\\MySQL.g:923:12: ( PLUS | MINUS )
		// interval_expr
		{
			if ((input.LA(1) >= PLUS && input.LA(1) <= MINUS)) {
				input.consume();
				state.errorRecovery = false;
				state.failed = false;
			} else {
				if (state.backtracking > 0) {
					state.failed = true;
					return;
				}
				MismatchedSetException mse = new MismatchedSetException(null,
						input);
				throw mse;
			}

			pushFollow(FOLLOW_interval_expr_in_synpred876_MySQL8238);
			interval_expr();

			state._fsp--;
			if (state.failed)
				return;

		}
	}

	// $ANTLR end synpred876_MySQL

	// $ANTLR start synpred880_MySQL
	public final void synpred880_MySQL_fragment() throws RecognitionException {
		// C:\\Users\\grand\\Desktop\\another\\MySQL.g:925:2: ( ( PLUS | MINUS |
		// NEGATION | BINARY ) simple_expr )
		// C:\\Users\\grand\\Desktop\\another\\MySQL.g:925:2: ( PLUS | MINUS |
		// NEGATION | BINARY ) simple_expr
		{
			if (input.LA(1) == BINARY
					|| (input.LA(1) >= PLUS && input.LA(1) <= MINUS)
					|| input.LA(1) == NEGATION) {
				input.consume();
				state.errorRecovery = false;
				state.failed = false;
			} else {
				if (state.backtracking > 0) {
					state.failed = true;
					return;
				}
				MismatchedSetException mse = new MismatchedSetException(null,
						input);
				throw mse;
			}

			pushFollow(FOLLOW_simple_expr_in_synpred880_MySQL8269);
			simple_expr();

			state._fsp--;
			if (state.failed)
				return;

		}
	}

	// $ANTLR end synpred880_MySQL

	// $ANTLR start synpred897_MySQL
	public final void synpred897_MySQL_fragment() throws RecognitionException {
		// C:\\Users\\grand\\Desktop\\another\\MySQL.g:950:4: ( ( CONVERT_SYM
		// LPAREN expression COMMA cast_data_type RPAREN ) )
		// C:\\Users\\grand\\Desktop\\another\\MySQL.g:950:4: ( CONVERT_SYM
		// LPAREN expression COMMA cast_data_type RPAREN )
		{
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:950:4: ( CONVERT_SYM
			// LPAREN expression COMMA cast_data_type RPAREN )
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:950:7: CONVERT_SYM
			// LPAREN expression COMMA cast_data_type RPAREN
			{
				match(input, CONVERT_SYM,
						FOLLOW_CONVERT_SYM_in_synpred897_MySQL8445);
				if (state.failed)
					return;
				match(input, LPAREN, FOLLOW_LPAREN_in_synpred897_MySQL8447);
				if (state.failed)
					return;
				pushFollow(FOLLOW_expression_in_synpred897_MySQL8449);
				expression();

				state._fsp--;
				if (state.failed)
					return;
				match(input, COMMA, FOLLOW_COMMA_in_synpred897_MySQL8451);
				if (state.failed)
					return;
				pushFollow(FOLLOW_cast_data_type_in_synpred897_MySQL8453);
				cast_data_type();

				state._fsp--;
				if (state.failed)
					return;
				match(input, RPAREN, FOLLOW_RPAREN_in_synpred897_MySQL8455);
				if (state.failed)
					return;

			}

		}
	}

	// $ANTLR end synpred897_MySQL

	// $ANTLR start synpred898_MySQL
	public final void synpred898_MySQL_fragment() throws RecognitionException {
		// C:\\Users\\grand\\Desktop\\another\\MySQL.g:951:4: ( ( CONVERT_SYM
		// LPAREN expression USING_SYM transcoding_name RPAREN ) )
		// C:\\Users\\grand\\Desktop\\another\\MySQL.g:951:4: ( CONVERT_SYM
		// LPAREN expression USING_SYM transcoding_name RPAREN )
		{
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:951:4: ( CONVERT_SYM
			// LPAREN expression USING_SYM transcoding_name RPAREN )
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:951:7: CONVERT_SYM
			// LPAREN expression USING_SYM transcoding_name RPAREN
			{
				match(input, CONVERT_SYM,
						FOLLOW_CONVERT_SYM_in_synpred898_MySQL8475);
				if (state.failed)
					return;
				match(input, LPAREN, FOLLOW_LPAREN_in_synpred898_MySQL8477);
				if (state.failed)
					return;
				pushFollow(FOLLOW_expression_in_synpred898_MySQL8479);
				expression();

				state._fsp--;
				if (state.failed)
					return;
				match(input, USING_SYM,
						FOLLOW_USING_SYM_in_synpred898_MySQL8481);
				if (state.failed)
					return;
				pushFollow(FOLLOW_transcoding_name_in_synpred898_MySQL8483);
				transcoding_name();

				state._fsp--;
				if (state.failed)
					return;
				match(input, RPAREN, FOLLOW_RPAREN_in_synpred898_MySQL8485);
				if (state.failed)
					return;

			}

		}
	}

	// $ANTLR end synpred898_MySQL

	// $ANTLR start synpred908_MySQL
	public final void synpred908_MySQL_fragment() throws RecognitionException {
		// C:\\Users\\grand\\Desktop\\another\\MySQL.g:972:65: ( search_modifier
		// )
		// C:\\Users\\grand\\Desktop\\another\\MySQL.g:972:65: search_modifier
		{
			pushFollow(FOLLOW_search_modifier_in_synpred908_MySQL8712);
			search_modifier();

			state._fsp--;
			if (state.failed)
				return;

		}
	}

	// $ANTLR end synpred908_MySQL

	// $ANTLR start synpred913_MySQL
	public final void synpred913_MySQL_fragment() throws RecognitionException {
		// C:\\Users\\grand\\Desktop\\another\\MySQL.g:995:2: ( table_factor1 )
		// C:\\Users\\grand\\Desktop\\another\\MySQL.g:995:2: table_factor1
		{
			pushFollow(FOLLOW_table_factor1_in_synpred913_MySQL8822);
			table_factor1();

			state._fsp--;
			if (state.failed)
				return;

		}
	}

	// $ANTLR end synpred913_MySQL

	// $ANTLR start synpred916_MySQL
	public final void synpred916_MySQL_fragment() throws RecognitionException {
		// C:\\Users\\grand\\Desktop\\another\\MySQL.g:998:64: ( join_condition
		// )
		// C:\\Users\\grand\\Desktop\\another\\MySQL.g:998:64: join_condition
		{
			pushFollow(FOLLOW_join_condition_in_synpred916_MySQL8856);
			join_condition();

			state._fsp--;
			if (state.failed)
				return;

		}
	}

	// $ANTLR end synpred916_MySQL

	// $ANTLR start synpred918_MySQL
	public final void synpred918_MySQL_fragment() throws RecognitionException {
		// C:\\Users\\grand\\Desktop\\another\\MySQL.g:1001:46: ( ON expression
		// )
		// C:\\Users\\grand\\Desktop\\another\\MySQL.g:1001:46: ON expression
		{
			match(input, ON, FOLLOW_ON_in_synpred918_MySQL8881);
			if (state.failed)
				return;
			pushFollow(FOLLOW_expression_in_synpred918_MySQL8884);
			expression();

			state._fsp--;
			if (state.failed)
				return;

		}
	}

	// $ANTLR end synpred918_MySQL

	// $ANTLR start synpred922_MySQL
	public final void synpred922_MySQL_fragment() throws RecognitionException {
		// C:\\Users\\grand\\Desktop\\another\\MySQL.g:1004:19: ( ( LEFT | RIGHT
		// ) ( OUTER )? JOIN_SYM table_factor4 join_condition )
		// C:\\Users\\grand\\Desktop\\another\\MySQL.g:1004:19: ( LEFT | RIGHT )
		// ( OUTER )? JOIN_SYM table_factor4 join_condition
		{
			if (input.LA(1) == LEFT || input.LA(1) == RIGHT) {
				input.consume();
				state.errorRecovery = false;
				state.failed = false;
			} else {
				if (state.backtracking > 0) {
					state.failed = true;
					return;
				}
				MismatchedSetException mse = new MismatchedSetException(null,
						input);
				throw mse;
			}

			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:1004:34: ( OUTER )?
			int alt775 = 2;
			int LA775_0 = input.LA(1);

			if ((LA775_0 == OUTER)) {
				alt775 = 1;
			}
			switch (alt775) {
			case 1:
			// C:\\Users\\grand\\Desktop\\another\\MySQL.g:1004:35: OUTER
			{
				match(input, OUTER, FOLLOW_OUTER_in_synpred922_MySQL8912);
				if (state.failed)
					return;

			}
				break;

			}

			match(input, JOIN_SYM, FOLLOW_JOIN_SYM_in_synpred922_MySQL8917);
			if (state.failed)
				return;
			pushFollow(FOLLOW_table_factor4_in_synpred922_MySQL8920);
			table_factor4();

			state._fsp--;
			if (state.failed)
				return;
			pushFollow(FOLLOW_join_condition_in_synpred922_MySQL8922);
			join_condition();

			state._fsp--;
			if (state.failed)
				return;

		}
	}

	// $ANTLR end synpred922_MySQL

	// $ANTLR start synpred927_MySQL
	public final void synpred927_MySQL_fragment() throws RecognitionException {
		// C:\\Users\\grand\\Desktop\\another\\MySQL.g:1010:18: (
		// partition_clause )
		// C:\\Users\\grand\\Desktop\\another\\MySQL.g:1010:18: partition_clause
		{
			pushFollow(FOLLOW_partition_clause_in_synpred927_MySQL8982);
			partition_clause();

			state._fsp--;
			if (state.failed)
				return;

		}
	}

	// $ANTLR end synpred927_MySQL

	// Delegated rules

	public final boolean synpred916_MySQL() {
		state.backtracking++;
		int start = input.mark();
		try {
			synpred916_MySQL_fragment(); // can never throw exception
		} catch (RecognitionException re) {
			System.err.println("impossible: " + re);
		}
		boolean success = !state.failed;
		input.rewind(start);
		state.backtracking--;
		state.failed = false;
		return success;
	}

	public final boolean synpred866_MySQL() {
		state.backtracking++;
		int start = input.mark();
		try {
			synpred866_MySQL_fragment(); // can never throw exception
		} catch (RecognitionException re) {
			System.err.println("impossible: " + re);
		}
		boolean success = !state.failed;
		input.rewind(start);
		state.backtracking--;
		state.failed = false;
		return success;
	}

	public final boolean synpred627_MySQL() {
		state.backtracking++;
		int start = input.mark();
		try {
			synpred627_MySQL_fragment(); // can never throw exception
		} catch (RecognitionException re) {
			System.err.println("impossible: " + re);
		}
		boolean success = !state.failed;
		input.rewind(start);
		state.backtracking--;
		state.failed = false;
		return success;
	}

	public final boolean synpred922_MySQL() {
		state.backtracking++;
		int start = input.mark();
		try {
			synpred922_MySQL_fragment(); // can never throw exception
		} catch (RecognitionException re) {
			System.err.println("impossible: " + re);
		}
		boolean success = !state.failed;
		input.rewind(start);
		state.backtracking--;
		state.failed = false;
		return success;
	}

	public final boolean synpred918_MySQL() {
		state.backtracking++;
		int start = input.mark();
		try {
			synpred918_MySQL_fragment(); // can never throw exception
		} catch (RecognitionException re) {
			System.err.println("impossible: " + re);
		}
		boolean success = !state.failed;
		input.rewind(start);
		state.backtracking--;
		state.failed = false;
		return success;
	}

	public final boolean synpred861_MySQL() {
		state.backtracking++;
		int start = input.mark();
		try {
			synpred861_MySQL_fragment(); // can never throw exception
		} catch (RecognitionException re) {
			System.err.println("impossible: " + re);
		}
		boolean success = !state.failed;
		input.rewind(start);
		state.backtracking--;
		state.failed = false;
		return success;
	}

	public final boolean synpred859_MySQL() {
		state.backtracking++;
		int start = input.mark();
		try {
			synpred859_MySQL_fragment(); // can never throw exception
		} catch (RecognitionException re) {
			System.err.println("impossible: " + re);
		}
		boolean success = !state.failed;
		input.rewind(start);
		state.backtracking--;
		state.failed = false;
		return success;
	}

	public final boolean synpred847_MySQL() {
		state.backtracking++;
		int start = input.mark();
		try {
			synpred847_MySQL_fragment(); // can never throw exception
		} catch (RecognitionException re) {
			System.err.println("impossible: " + re);
		}
		boolean success = !state.failed;
		input.rewind(start);
		state.backtracking--;
		state.failed = false;
		return success;
	}

	public final boolean synpred908_MySQL() {
		state.backtracking++;
		int start = input.mark();
		try {
			synpred908_MySQL_fragment(); // can never throw exception
		} catch (RecognitionException re) {
			System.err.println("impossible: " + re);
		}
		boolean success = !state.failed;
		input.rewind(start);
		state.backtracking--;
		state.failed = false;
		return success;
	}

	public final boolean synpred43_MySQL() {
		state.backtracking++;
		int start = input.mark();
		try {
			synpred43_MySQL_fragment(); // can never throw exception
		} catch (RecognitionException re) {
			System.err.println("impossible: " + re);
		}
		boolean success = !state.failed;
		input.rewind(start);
		state.backtracking--;
		state.failed = false;
		return success;
	}

	public final boolean synpred858_MySQL() {
		state.backtracking++;
		int start = input.mark();
		try {
			synpred858_MySQL_fragment(); // can never throw exception
		} catch (RecognitionException re) {
			System.err.println("impossible: " + re);
		}
		boolean success = !state.failed;
		input.rewind(start);
		state.backtracking--;
		state.failed = false;
		return success;
	}

	public final boolean synpred876_MySQL() {
		state.backtracking++;
		int start = input.mark();
		try {
			synpred876_MySQL_fragment(); // can never throw exception
		} catch (RecognitionException re) {
			System.err.println("impossible: " + re);
		}
		boolean success = !state.failed;
		input.rewind(start);
		state.backtracking--;
		state.failed = false;
		return success;
	}

	public final boolean synpred86_MySQL() {
		state.backtracking++;
		int start = input.mark();
		try {
			synpred86_MySQL_fragment(); // can never throw exception
		} catch (RecognitionException re) {
			System.err.println("impossible: " + re);
		}
		boolean success = !state.failed;
		input.rewind(start);
		state.backtracking--;
		state.failed = false;
		return success;
	}

	public final boolean synpred843_MySQL() {
		state.backtracking++;
		int start = input.mark();
		try {
			synpred843_MySQL_fragment(); // can never throw exception
		} catch (RecognitionException re) {
			System.err.println("impossible: " + re);
		}
		boolean success = !state.failed;
		input.rewind(start);
		state.backtracking--;
		state.failed = false;
		return success;
	}

	public final boolean synpred443_MySQL() {
		state.backtracking++;
		int start = input.mark();
		try {
			synpred443_MySQL_fragment(); // can never throw exception
		} catch (RecognitionException re) {
			System.err.println("impossible: " + re);
		}
		boolean success = !state.failed;
		input.rewind(start);
		state.backtracking--;
		state.failed = false;
		return success;
	}

	public final boolean synpred851_MySQL() {
		state.backtracking++;
		int start = input.mark();
		try {
			synpred851_MySQL_fragment(); // can never throw exception
		} catch (RecognitionException re) {
			System.err.println("impossible: " + re);
		}
		boolean success = !state.failed;
		input.rewind(start);
		state.backtracking--;
		state.failed = false;
		return success;
	}

	public final boolean synpred628_MySQL() {
		state.backtracking++;
		int start = input.mark();
		try {
			synpred628_MySQL_fragment(); // can never throw exception
		} catch (RecognitionException re) {
			System.err.println("impossible: " + re);
		}
		boolean success = !state.failed;
		input.rewind(start);
		state.backtracking--;
		state.failed = false;
		return success;
	}

	public final boolean synpred868_MySQL() {
		state.backtracking++;
		int start = input.mark();
		try {
			synpred868_MySQL_fragment(); // can never throw exception
		} catch (RecognitionException re) {
			System.err.println("impossible: " + re);
		}
		boolean success = !state.failed;
		input.rewind(start);
		state.backtracking--;
		state.failed = false;
		return success;
	}

	public final boolean synpred864_MySQL() {
		state.backtracking++;
		int start = input.mark();
		try {
			synpred864_MySQL_fragment(); // can never throw exception
		} catch (RecognitionException re) {
			System.err.println("impossible: " + re);
		}
		boolean success = !state.failed;
		input.rewind(start);
		state.backtracking--;
		state.failed = false;
		return success;
	}

	public final boolean synpred660_MySQL() {
		state.backtracking++;
		int start = input.mark();
		try {
			synpred660_MySQL_fragment(); // can never throw exception
		} catch (RecognitionException re) {
			System.err.println("impossible: " + re);
		}
		boolean success = !state.failed;
		input.rewind(start);
		state.backtracking--;
		state.failed = false;
		return success;
	}

	public final boolean synpred841_MySQL() {
		state.backtracking++;
		int start = input.mark();
		try {
			synpred841_MySQL_fragment(); // can never throw exception
		} catch (RecognitionException re) {
			System.err.println("impossible: " + re);
		}
		boolean success = !state.failed;
		input.rewind(start);
		state.backtracking--;
		state.failed = false;
		return success;
	}

	public final boolean synpred927_MySQL() {
		state.backtracking++;
		int start = input.mark();
		try {
			synpred927_MySQL_fragment(); // can never throw exception
		} catch (RecognitionException re) {
			System.err.println("impossible: " + re);
		}
		boolean success = !state.failed;
		input.rewind(start);
		state.backtracking--;
		state.failed = false;
		return success;
	}

	public final boolean synpred913_MySQL() {
		state.backtracking++;
		int start = input.mark();
		try {
			synpred913_MySQL_fragment(); // can never throw exception
		} catch (RecognitionException re) {
			System.err.println("impossible: " + re);
		}
		boolean success = !state.failed;
		input.rewind(start);
		state.backtracking--;
		state.failed = false;
		return success;
	}

	public final boolean synpred848_MySQL() {
		state.backtracking++;
		int start = input.mark();
		try {
			synpred848_MySQL_fragment(); // can never throw exception
		} catch (RecognitionException re) {
			System.err.println("impossible: " + re);
		}
		boolean success = !state.failed;
		input.rewind(start);
		state.backtracking--;
		state.failed = false;
		return success;
	}

	public final boolean synpred898_MySQL() {
		state.backtracking++;
		int start = input.mark();
		try {
			synpred898_MySQL_fragment(); // can never throw exception
		} catch (RecognitionException re) {
			System.err.println("impossible: " + re);
		}
		boolean success = !state.failed;
		input.rewind(start);
		state.backtracking--;
		state.failed = false;
		return success;
	}

	public final boolean synpred522_MySQL() {
		state.backtracking++;
		int start = input.mark();
		try {
			synpred522_MySQL_fragment(); // can never throw exception
		} catch (RecognitionException re) {
			System.err.println("impossible: " + re);
		}
		boolean success = !state.failed;
		input.rewind(start);
		state.backtracking--;
		state.failed = false;
		return success;
	}

	public final boolean synpred853_MySQL() {
		state.backtracking++;
		int start = input.mark();
		try {
			synpred853_MySQL_fragment(); // can never throw exception
		} catch (RecognitionException re) {
			System.err.println("impossible: " + re);
		}
		boolean success = !state.failed;
		input.rewind(start);
		state.backtracking--;
		state.failed = false;
		return success;
	}

	public final boolean synpred874_MySQL() {
		state.backtracking++;
		int start = input.mark();
		try {
			synpred874_MySQL_fragment(); // can never throw exception
		} catch (RecognitionException re) {
			System.err.println("impossible: " + re);
		}
		boolean success = !state.failed;
		input.rewind(start);
		state.backtracking--;
		state.failed = false;
		return success;
	}

	public final boolean synpred870_MySQL() {
		state.backtracking++;
		int start = input.mark();
		try {
			synpred870_MySQL_fragment(); // can never throw exception
		} catch (RecognitionException re) {
			System.err.println("impossible: " + re);
		}
		boolean success = !state.failed;
		input.rewind(start);
		state.backtracking--;
		state.failed = false;
		return success;
	}

	public final boolean synpred865_MySQL() {
		state.backtracking++;
		int start = input.mark();
		try {
			synpred865_MySQL_fragment(); // can never throw exception
		} catch (RecognitionException re) {
			System.err.println("impossible: " + re);
		}
		boolean success = !state.failed;
		input.rewind(start);
		state.backtracking--;
		state.failed = false;
		return success;
	}

	public final boolean synpred55_MySQL() {
		state.backtracking++;
		int start = input.mark();
		try {
			synpred55_MySQL_fragment(); // can never throw exception
		} catch (RecognitionException re) {
			System.err.println("impossible: " + re);
		}
		boolean success = !state.failed;
		input.rewind(start);
		state.backtracking--;
		state.failed = false;
		return success;
	}

	public final boolean synpred338_MySQL() {
		state.backtracking++;
		int start = input.mark();
		try {
			synpred338_MySQL_fragment(); // can never throw exception
		} catch (RecognitionException re) {
			System.err.println("impossible: " + re);
		}
		boolean success = !state.failed;
		input.rewind(start);
		state.backtracking--;
		state.failed = false;
		return success;
	}

	public final boolean synpred87_MySQL() {
		state.backtracking++;
		int start = input.mark();
		try {
			synpred87_MySQL_fragment(); // can never throw exception
		} catch (RecognitionException re) {
			System.err.println("impossible: " + re);
		}
		boolean success = !state.failed;
		input.rewind(start);
		state.backtracking--;
		state.failed = false;
		return success;
	}

	public final boolean synpred862_MySQL() {
		state.backtracking++;
		int start = input.mark();
		try {
			synpred862_MySQL_fragment(); // can never throw exception
		} catch (RecognitionException re) {
			System.err.println("impossible: " + re);
		}
		boolean success = !state.failed;
		input.rewind(start);
		state.backtracking--;
		state.failed = false;
		return success;
	}

	public final boolean synpred844_MySQL() {
		state.backtracking++;
		int start = input.mark();
		try {
			synpred844_MySQL_fragment(); // can never throw exception
		} catch (RecognitionException re) {
			System.err.println("impossible: " + re);
		}
		boolean success = !state.failed;
		input.rewind(start);
		state.backtracking--;
		state.failed = false;
		return success;
	}

	public final boolean synpred842_MySQL() {
		state.backtracking++;
		int start = input.mark();
		try {
			synpred842_MySQL_fragment(); // can never throw exception
		} catch (RecognitionException re) {
			System.err.println("impossible: " + re);
		}
		boolean success = !state.failed;
		input.rewind(start);
		state.backtracking--;
		state.failed = false;
		return success;
	}

	public final boolean synpred94_MySQL() {
		state.backtracking++;
		int start = input.mark();
		try {
			synpred94_MySQL_fragment(); // can never throw exception
		} catch (RecognitionException re) {
			System.err.println("impossible: " + re);
		}
		boolean success = !state.failed;
		input.rewind(start);
		state.backtracking--;
		state.failed = false;
		return success;
	}

	public final boolean synpred91_MySQL() {
		state.backtracking++;
		int start = input.mark();
		try {
			synpred91_MySQL_fragment(); // can never throw exception
		} catch (RecognitionException re) {
			System.err.println("impossible: " + re);
		}
		boolean success = !state.failed;
		input.rewind(start);
		state.backtracking--;
		state.failed = false;
		return success;
	}

	public final boolean synpred897_MySQL() {
		state.backtracking++;
		int start = input.mark();
		try {
			synpred897_MySQL_fragment(); // can never throw exception
		} catch (RecognitionException re) {
			System.err.println("impossible: " + re);
		}
		boolean success = !state.failed;
		input.rewind(start);
		state.backtracking--;
		state.failed = false;
		return success;
	}

	public final boolean synpred880_MySQL() {
		state.backtracking++;
		int start = input.mark();
		try {
			synpred880_MySQL_fragment(); // can never throw exception
		} catch (RecognitionException re) {
			System.err.println("impossible: " + re);
		}
		boolean success = !state.failed;
		input.rewind(start);
		state.backtracking--;
		state.failed = false;
		return success;
	}

	public final boolean synpred42_MySQL() {
		state.backtracking++;
		int start = input.mark();
		try {
			synpred42_MySQL_fragment(); // can never throw exception
		} catch (RecognitionException re) {
			System.err.println("impossible: " + re);
		}
		boolean success = !state.failed;
		input.rewind(start);
		state.backtracking--;
		state.failed = false;
		return success;
	}

	public final boolean synpred856_MySQL() {
		state.backtracking++;
		int start = input.mark();
		try {
			synpred856_MySQL_fragment(); // can never throw exception
		} catch (RecognitionException re) {
			System.err.println("impossible: " + re);
		}
		boolean success = !state.failed;
		input.rewind(start);
		state.backtracking--;
		state.failed = false;
		return success;
	}

	protected DFA7 dfa7 = new DFA7(this);
	protected DFA55 dfa55 = new DFA55(this);
	protected DFA89 dfa89 = new DFA89(this);
	protected DFA127 dfa127 = new DFA127(this);
	protected DFA260 dfa260 = new DFA260(this);
	protected DFA285 dfa285 = new DFA285(this);
	protected DFA383 dfa383 = new DFA383(this);
	protected DFA414 dfa414 = new DFA414(this);
	protected DFA428 dfa428 = new DFA428(this);
	protected DFA435 dfa435 = new DFA435(this);
	protected DFA449 dfa449 = new DFA449(this);
	protected DFA454 dfa454 = new DFA454(this);
	protected DFA468 dfa468 = new DFA468(this);
	protected DFA470 dfa470 = new DFA470(this);
	protected DFA474 dfa474 = new DFA474(this);
	protected DFA479 dfa479 = new DFA479(this);
	static final String DFA7_eotS = "\16\uffff";
	static final String DFA7_eofS = "\16\uffff";
	static final String DFA7_minS = "\1\122\1\123\1\105\1\126\12\uffff";
	static final String DFA7_maxS = "\1\u00ce\3\u00e4\12\uffff";
	static final String DFA7_acceptS = "\4\uffff\1\6\1\10\1\11\1\4\1\1\1\5\1\2\1\7\1\12\1\3";
	static final String DFA7_specialS = "\16\uffff}>";
	static final String[] DFA7_transitionS = {
			"\1\1\12\uffff\1\3\137\uffff\1\2\10\uffff\1\4\7\uffff\1\5",
			"\4\6\1\7\6\uffff\2\10\172\uffff\1\7\4\uffff\1\7\1\uffff\1"
					+ "\7\2\uffff\1\7",
			"\1\12\21\uffff\1\11\7\uffff\1\12\177\uffff\1\11\1\uffff\1"
					+ "\11\2\uffff\1\11",
			"\1\14\7\uffff\2\15\u0084\uffff\1\13", "", "", "", "", "", "", "",
			"", "", "" };

	static final short[] DFA7_eot = DFA.unpackEncodedString(DFA7_eotS);
	static final short[] DFA7_eof = DFA.unpackEncodedString(DFA7_eofS);
	static final char[] DFA7_min = DFA
			.unpackEncodedStringToUnsignedChars(DFA7_minS);
	static final char[] DFA7_max = DFA
			.unpackEncodedStringToUnsignedChars(DFA7_maxS);
	static final short[] DFA7_accept = DFA.unpackEncodedString(DFA7_acceptS);
	static final short[] DFA7_special = DFA.unpackEncodedString(DFA7_specialS);
	static final short[][] DFA7_transition;

	static {
		int numStates = DFA7_transitionS.length;
		DFA7_transition = new short[numStates][];
		for (int i = 0; i < numStates; i++) {
			DFA7_transition[i] = DFA.unpackEncodedString(DFA7_transitionS[i]);
		}
	}

	class DFA7 extends DFA {

		public DFA7(BaseRecognizer recognizer) {
			this.recognizer = recognizer;
			this.decisionNumber = 7;
			this.eot = DFA7_eot;
			this.eof = DFA7_eof;
			this.min = DFA7_min;
			this.max = DFA7_max;
			this.accept = DFA7_accept;
			this.special = DFA7_special;
			this.transition = DFA7_transition;
		}

		public String getDescription() {
			return "54:1: data_definition_statements : ( create_table_statement -> ^( CREATE_TAB_STMT create_table_statement ) | alter_table_statement -> ^( ALTER_TAB_STMT alter_table_statement ) | drop_table_statement -> ^( DROP_TAB_STMT drop_table_statement ) | create_view_statement -> ^( CREATE_VIEW_STMT create_view_statement ) | alter_view_statement | rename_table_statement -> ^( RENAME_TAB_STMT rename_table_statement ) | drop_view_statement -> ^( DROP_VIEW_STMT drop_view_statement ) | truncate_table_statement -> ^( TRUNCATE_TAB_STMT truncate_table_statement ) | create_index_statement -> | drop_index_statement ->);";
		}
	}

	static final String DFA55_eotS = "\37\uffff";
	static final String DFA55_eofS = "\37\uffff";
	static final String DFA55_minS = "\1\110\1\42\2\105\1\111\1\u01d2\1\37\1\77\1\u01d2\2\uffff\1\u01d2"
			+ "\1\uffff\1\u01d2\1\64\1\37\1\64\2\u01d2\1\37\1\u01d2\1\37\3\64\2"
			+ "\u01d2\2\64\1\u01d2\1\64";
	static final String DFA55_maxS = "\1\110\5\u01d2\1\u00b0\1\77\1\u01d2\2\uffff\1\u01d2\1\uffff\1\u01d2"
			+ "\1\101\1\u00b0\1\100\2\u01d2\1\117\1\u01d2\1\121\2\101\1\100\2\u01d2"
			+ "\1\100\1\101\1\u01d2\1\100";
	static final String DFA55_acceptS = "\11\uffff\1\1\1\3\1\uffff\1\2\22\uffff";
	static final String DFA55_specialS = "\37\uffff}>";
	static final String[] DFA55_transitionS = {
			"\1\1",
			"\1\3\40\uffff\1\2\1\uffff\1\4\3\uffff\1\5\u0188\uffff\1\6",
			"\1\4\3\uffff\1\5\u0188\uffff\1\6",
			"\1\4\3\uffff\1\5\u0188\uffff\1\6",
			"\1\5\u0188\uffff\1\6",
			"\1\6",
			"\1\12\37\uffff\1\10\1\uffff\1\13\14\uffff\2\11\1\uffff\1\14"
					+ "\136\uffff\1\7",
			"\1\15",
			"\1\16",
			"",
			"",
			"\1\17",
			"",
			"\1\20",
			"\1\22\13\uffff\1\23\1\21",
			"\1\12\37\uffff\1\10\16\uffff\2\11\1\uffff\1\14\136\uffff\1" + "\7",
			"\1\24\13\uffff\1\25", "\1\26", "\1\27", "\1\12\56\uffff\2\11",
			"\1\30", "\1\12\37\uffff\1\10\16\uffff\2\11\1\uffff\1\14",
			"\1\22\13\uffff\1\23\1\31", "\1\22\13\uffff\1\23\1\32",
			"\1\24\13\uffff\1\25", "\1\33", "\1\34", "\1\22\13\uffff\1\23",
			"\1\22\13\uffff\1\23\1\35", "\1\36", "\1\22\13\uffff\1\23" };

	static final short[] DFA55_eot = DFA.unpackEncodedString(DFA55_eotS);
	static final short[] DFA55_eof = DFA.unpackEncodedString(DFA55_eofS);
	static final char[] DFA55_min = DFA
			.unpackEncodedStringToUnsignedChars(DFA55_minS);
	static final char[] DFA55_max = DFA
			.unpackEncodedStringToUnsignedChars(DFA55_maxS);
	static final short[] DFA55_accept = DFA.unpackEncodedString(DFA55_acceptS);
	static final short[] DFA55_special = DFA
			.unpackEncodedString(DFA55_specialS);
	static final short[][] DFA55_transition;

	static {
		int numStates = DFA55_transitionS.length;
		DFA55_transition = new short[numStates][];
		for (int i = 0; i < numStates; i++) {
			DFA55_transition[i] = DFA.unpackEncodedString(DFA55_transitionS[i]);
		}
	}

	class DFA55 extends DFA {

		public DFA55(BaseRecognizer recognizer) {
			this.recognizer = recognizer;
			this.decisionNumber = 55;
			this.eot = DFA55_eot;
			this.eof = DFA55_eof;
			this.min = DFA55_min;
			this.max = DFA55_max;
			this.accept = DFA55_accept;
			this.special = DFA55_special;
			this.transition = DFA55_transition;
		}

		public String getDescription() {
			return "187:1: insert_statements : ( insert_statement1 -> insert_statement1 | insert_statement2 -> insert_statement2 | insert_statement3 -> insert_statement3 );";
		}
	}

	static final String DFA89_eotS = "\14\uffff";
	static final String DFA89_eofS = "\14\uffff";
	static final String DFA89_minS = "\1\122\1\136\1\137\1\140\1\141\1\35\1\142\1\uffff\1\114\1\uffff"
			+ "\1\u01d2\1\uffff";
	static final String DFA89_maxS = "\1\122\2\137\1\u01d2\1\141\1\u00b0\1\142\1\uffff\1\u01d2\1\uffff"
			+ "\1\u01d2\1\uffff";
	static final String DFA89_acceptS = "\7\uffff\1\3\1\uffff\1\2\1\uffff\1\1";
	static final String DFA89_specialS = "\14\uffff}>";
	static final String[] DFA89_transitionS = {
			"\1\1",
			"\1\2\1\3",
			"\1\3",
			"\1\4\u0171\uffff\1\5",
			"\1\6",
			"\1\11\1\uffff\1\11\37\uffff\1\10\20\uffff\1\11\5\uffff\1\11"
					+ "\14\uffff\1\7\4\uffff\2\11\32\uffff\2\11\25\uffff\5\11\1\uffff"
					+ "\2\11\2\uffff\6\11\3\uffff\3\11", "\1\12", "",
			"\1\13\6\uffff\4\13\14\uffff\1\7\4\13\u016a\uffff\1\13", "",
			"\1\5", "" };

	static final short[] DFA89_eot = DFA.unpackEncodedString(DFA89_eotS);
	static final short[] DFA89_eof = DFA.unpackEncodedString(DFA89_eofS);
	static final char[] DFA89_min = DFA
			.unpackEncodedStringToUnsignedChars(DFA89_minS);
	static final char[] DFA89_max = DFA
			.unpackEncodedStringToUnsignedChars(DFA89_maxS);
	static final short[] DFA89_accept = DFA.unpackEncodedString(DFA89_acceptS);
	static final short[] DFA89_special = DFA
			.unpackEncodedString(DFA89_specialS);
	static final short[][] DFA89_transition;

	static {
		int numStates = DFA89_transitionS.length;
		DFA89_transition = new short[numStates][];
		for (int i = 0; i < numStates; i++) {
			DFA89_transition[i] = DFA.unpackEncodedString(DFA89_transitionS[i]);
		}
	}

	class DFA89 extends DFA {

		public DFA89(BaseRecognizer recognizer) {
			this.recognizer = recognizer;
			this.decisionNumber = 89;
			this.eot = DFA89_eot;
			this.eof = DFA89_eof;
			this.min = DFA89_min;
			this.max = DFA89_max;
			this.accept = DFA89_accept;
			this.special = DFA89_special;
			this.transition = DFA89_transition;
		}

		public String getDescription() {
			return "279:1: create_table_statement : ( create_table_statement1 -> create_table_statement1 | create_table_statement2 -> create_table_statement2 | create_table_statement3 -> create_table_statement3 );";
		}
	}

	static final String DFA127_eotS = "\12\uffff";
	static final String DFA127_eofS = "\12\uffff";
	static final String DFA127_minS = "\1\114\1\uffff\1\123\6\uffff\1\123";
	static final String DFA127_maxS = "\1\u01d2\1\uffff\1\u01d2\6\uffff\1\146";
	static final String DFA127_acceptS = "\1\uffff\1\1\1\uffff\1\2\1\3\1\4\1\5\1\6\1\7\1\uffff";
	static final String DFA127_specialS = "\12\uffff}>";
	static final String[] DFA127_transitionS = {
			"\1\4\6\uffff\1\5\2\6\1\4\15\uffff\1\2\1\3\1\7\1\10\u016a\uffff"
					+ "\1\1", "", "\1\5\21\uffff\1\3\1\7\u016b\uffff\1\11", "",
			"", "", "", "", "", "\1\5\21\uffff\1\3\1\7" };

	static final short[] DFA127_eot = DFA.unpackEncodedString(DFA127_eotS);
	static final short[] DFA127_eof = DFA.unpackEncodedString(DFA127_eofS);
	static final char[] DFA127_min = DFA
			.unpackEncodedStringToUnsignedChars(DFA127_minS);
	static final char[] DFA127_max = DFA
			.unpackEncodedStringToUnsignedChars(DFA127_maxS);
	static final short[] DFA127_accept = DFA
			.unpackEncodedString(DFA127_acceptS);
	static final short[] DFA127_special = DFA
			.unpackEncodedString(DFA127_specialS);
	static final short[][] DFA127_transition;

	static {
		int numStates = DFA127_transitionS.length;
		DFA127_transition = new short[numStates][];
		for (int i = 0; i < numStates; i++) {
			DFA127_transition[i] = DFA
					.unpackEncodedString(DFA127_transitionS[i]);
		}
	}

	class DFA127 extends DFA {

		public DFA127(BaseRecognizer recognizer) {
			this.recognizer = recognizer;
			this.decisionNumber = 127;
			this.eot = DFA127_eot;
			this.eof = DFA127_eof;
			this.min = DFA127_min;
			this.max = DFA127_max;
			this.accept = DFA127_accept;
			this.special = DFA127_special;
			this.transition = DFA127_transition;
		}

		public String getDescription() {
			return "305:1: create_definition : ( ( column_name column_definition ) -> ^( COLUMN_SPEC column_name column_definition ) | ( ( CONSTRAINT ( constraint_symbol_name )? )? PRIMARY_SYM KEY_SYM ( index_type )? LPAREN index_column_name ( COMMA index_column_name )* RPAREN ( index_option )* ) | ( ( INDEX_SYM | KEY_SYM ) ( index_name )? ( index_type )? LPAREN index_column_name ( COMMA index_column_name )* RPAREN ( index_option )* ) | ( ( CONSTRAINT ( constraint_symbol_name )? )? UNIQUE_SYM ( INDEX_SYM | KEY_SYM )? ( index_name )? ( index_type )? LPAREN index_column_name ( COMMA index_column_name )* RPAREN ( index_option )* ) | ( ( FULLTEXT_SYM | SPATIAL_SYM ) ( INDEX_SYM | KEY_SYM )? ( index_name )? LPAREN index_column_name ( COMMA index_column_name )* RPAREN ( index_option )* ) | ( ( CONSTRAINT ( constraint_symbol_name )? )? FOREIGN KEY_SYM ( index_name )? LPAREN index_column_name ( COMMA index_column_name )* RPAREN reference_definition ) | ( CHECK_SYM LPAREN expression RPAREN ) );";
		}
	}

	static final String DFA260_eotS = "\113\uffff";
	static final String DFA260_eofS = "\1\1\112\uffff";
	static final String DFA260_minS = "\1\34\1\uffff\1\35\1\uffff\1\115\2\67\1\u0084\1\121\1\67\3\115"
			+ "\1\u00a0\1\67\1\u00a0\1\115\4\67\2\115\2\67\1\77\1\u01d2\1\0\1\67"
			+ "\1\0\1\67\1\0\1\115\1\67\1\0\1\u01d2\1\0\1\152\1\0\1\152\1\0\1\115"
			+ "\1\67\1\0\1\115\1\u0099\1\0\1\67\1\0\1\67\1\0\1\67\1\0\1\67\1\0"
			+ "\1\152\1\0\1\120\1\0\1\67\1\0\1\67\1\0\1\77\1\u01d2\1\u0087\1\0"
			+ "\1\152\1\0\1\152\1\0\1\64\1\u01d2\1\0\1\64";
	static final String DFA260_maxS = "\1\u00b0\1\uffff\1\u00d6\1\uffff\1\u01d2\2\115\1\u0085\1\121\1"
			+ "\115\1\u01d2\2\152\1\u00a0\1\115\1\u00a0\1\u00a4\3\115\1\120\1\152"
			+ "\1\u00ad\2\120\1\115\1\u01d2\1\0\1\67\1\0\1\67\1\0\1\u010f\1\67"
			+ "\1\0\1\u01d2\1\0\1\152\1\0\1\152\1\0\1\152\1\67\1\0\1\152\1\u00a4"
			+ "\1\0\1\67\1\0\1\67\1\0\1\67\1\0\1\120\1\0\1\152\1\0\1\u00ad\1\0"
			+ "\1\120\1\0\1\120\1\0\1\77\1\u01d2\1\u010f\1\0\1\152\1\0\1\152\1"
			+ "\0\1\100\1\u01d2\1\0\1\100";
	static final String DFA260_acceptS = "\1\uffff\1\2\1\uffff\1\1\107\uffff";
	static final String DFA260_specialS = "\33\uffff\1\24\1\uffff\1\10\1\uffff\1\1\2\uffff\1\3\1\uffff\1\7"
			+ "\1\uffff\1\14\1\uffff\1\21\2\uffff\1\12\2\uffff\1\11\1\uffff\1\23"
			+ "\1\uffff\1\5\1\uffff\1\6\1\uffff\1\22\1\uffff\1\0\1\uffff\1\13\1"
			+ "\uffff\1\15\1\uffff\1\2\3\uffff\1\20\1\uffff\1\16\1\uffff\1\4\2"
			+ "\uffff\1\17\1\uffff}>";
	static final String[] DFA260_transitionS = {
			"\1\1\1\3\1\uffff\1\1\24\uffff\1\2\33\uffff\1\3\5\uffff\1\3"
					+ "\21\uffff\2\3\32\uffff\2\3\25\uffff\5\3\1\uffff\2\3\2\uffff"
					+ "\6\3\3\uffff\2\3\1\1",
			"",
			"\1\31\17\uffff\1\1\13\uffff\1\1\26\uffff\1\7\5\uffff\1\17"
					+ "\1\1\5\uffff\1\1\11\uffff\1\1\1\5\1\13\32\uffff\1\10\1\12\25"
					+ "\uffff\1\4\1\6\1\11\1\14\1\15\1\uffff\1\16\1\20\2\uffff\1\21"
					+ "\1\22\1\23\1\24\1\25\1\26\3\uffff\1\27\1\30\15\uffff\2\1\2\uffff"
					+ "\3\1\1\uffff\2\1\2\uffff\2\1\1\uffff\13\1", "",
			"\1\32\u0184\uffff\1\33", "\1\35\25\uffff\1\34",
			"\1\37\25\uffff\1\36", "\1\10\1\12", "\1\40",
			"\1\42\25\uffff\1\41", "\1\43\u0184\uffff\1\44",
			"\1\45\34\uffff\1\46", "\1\47\34\uffff\1\50", "\1\51",
			"\1\53\25\uffff\1\52", "\1\54",
			"\1\55\113\uffff\1\56\11\uffff\2\56", "\1\60\25\uffff\1\57",
			"\1\62\25\uffff\1\61", "\1\64\25\uffff\1\63",
			"\1\66\25\uffff\1\65\2\uffff\1\66", "\1\67\34\uffff\1\70",
			"\1\71\2\uffff\1\72\33\uffff\2\72\75\uffff\3\72",
			"\1\74\25\uffff\1\73\2\uffff\1\74",
			"\1\76\25\uffff\1\75\2\uffff\1\76", "\1\100\15\uffff\1\77",
			"\1\33", "\1\uffff", "\1\35", "\1\uffff", "\1\37", "\1\uffff",
			"\1\101\71\uffff\1\102\145\uffff\43\102", "\1\42", "\1\uffff",
			"\1\44", "\1\uffff", "\1\46", "\1\uffff", "\1\50", "\1\uffff",
			"\1\103\34\uffff\1\104", "\1\53", "\1\uffff",
			"\1\105\34\uffff\1\106", "\1\56\11\uffff\2\56", "\1\uffff",
			"\1\60", "\1\uffff", "\1\62", "\1\uffff", "\1\64", "\1\uffff",
			"\1\66\30\uffff\1\66", "\1\uffff", "\1\70", "\1\uffff",
			"\1\72\33\uffff\2\72\75\uffff\3\72", "\1\uffff",
			"\1\74\30\uffff\1\74", "\1\uffff", "\1\76\30\uffff\1\76",
			"\1\uffff", "\1\100", "\1\107", "\1\102\145\uffff\43\102",
			"\1\uffff", "\1\104", "\1\uffff", "\1\106", "\1\uffff",
			"\1\110\13\uffff\1\111", "\1\112", "\1\uffff",
			"\1\110\13\uffff\1\111" };

	static final short[] DFA260_eot = DFA.unpackEncodedString(DFA260_eotS);
	static final short[] DFA260_eof = DFA.unpackEncodedString(DFA260_eofS);
	static final char[] DFA260_min = DFA
			.unpackEncodedStringToUnsignedChars(DFA260_minS);
	static final char[] DFA260_max = DFA
			.unpackEncodedStringToUnsignedChars(DFA260_maxS);
	static final short[] DFA260_accept = DFA
			.unpackEncodedString(DFA260_acceptS);
	static final short[] DFA260_special = DFA
			.unpackEncodedString(DFA260_specialS);
	static final short[][] DFA260_transition;

	static {
		int numStates = DFA260_transitionS.length;
		DFA260_transition = new short[numStates][];
		for (int i = 0; i < numStates; i++) {
			DFA260_transition[i] = DFA
					.unpackEncodedString(DFA260_transitionS[i]);
		}
	}

	class DFA260 extends DFA {

		public DFA260(BaseRecognizer recognizer) {
			this.recognizer = recognizer;
			this.decisionNumber = 260;
			this.eot = DFA260_eot;
			this.eof = DFA260_eof;
			this.min = DFA260_min;
			this.max = DFA260_max;
			this.accept = DFA260_accept;
			this.special = DFA260_special;
			this.transition = DFA260_transition;
		}

		public String getDescription() {
			return "()* loopback of 377:15: ( ( COMMA )? table_option )*";
		}

		public int specialStateTransition(int s, IntStream _input)
				throws NoViableAltException {
			TokenStream input = (TokenStream) _input;
			int _s = s;
			switch (s) {
			case 0:
				int LA260_56 = input.LA(1);

				int index260_56 = input.index();
				input.rewind();
				s = -1;
				if ((synpred338_MySQL())) {
					s = 3;
				}

				else if ((true)) {
					s = 1;
				}

				input.seek(index260_56);
				if (s >= 0)
					return s;
				break;
			case 1:
				int LA260_31 = input.LA(1);

				int index260_31 = input.index();
				input.rewind();
				s = -1;
				if ((synpred338_MySQL())) {
					s = 3;
				}

				else if ((true)) {
					s = 1;
				}

				input.seek(index260_31);
				if (s >= 0)
					return s;
				break;
			case 2:
				int LA260_62 = input.LA(1);

				int index260_62 = input.index();
				input.rewind();
				s = -1;
				if ((synpred338_MySQL())) {
					s = 3;
				}

				else if ((true)) {
					s = 1;
				}

				input.seek(index260_62);
				if (s >= 0)
					return s;
				break;
			case 3:
				int LA260_34 = input.LA(1);

				int index260_34 = input.index();
				input.rewind();
				s = -1;
				if ((synpred338_MySQL())) {
					s = 3;
				}

				else if ((true)) {
					s = 1;
				}

				input.seek(index260_34);
				if (s >= 0)
					return s;
				break;
			case 4:
				int LA260_70 = input.LA(1);

				int index260_70 = input.index();
				input.rewind();
				s = -1;
				if ((synpred338_MySQL())) {
					s = 3;
				}

				else if ((true)) {
					s = 1;
				}

				input.seek(index260_70);
				if (s >= 0)
					return s;
				break;
			case 5:
				int LA260_50 = input.LA(1);

				int index260_50 = input.index();
				input.rewind();
				s = -1;
				if ((synpred338_MySQL())) {
					s = 3;
				}

				else if ((true)) {
					s = 1;
				}

				input.seek(index260_50);
				if (s >= 0)
					return s;
				break;
			case 6:
				int LA260_52 = input.LA(1);

				int index260_52 = input.index();
				input.rewind();
				s = -1;
				if ((synpred338_MySQL())) {
					s = 3;
				}

				else if ((true)) {
					s = 1;
				}

				input.seek(index260_52);
				if (s >= 0)
					return s;
				break;
			case 7:
				int LA260_36 = input.LA(1);

				int index260_36 = input.index();
				input.rewind();
				s = -1;
				if ((synpred338_MySQL())) {
					s = 3;
				}

				else if ((true)) {
					s = 1;
				}

				input.seek(index260_36);
				if (s >= 0)
					return s;
				break;
			case 8:
				int LA260_29 = input.LA(1);

				int index260_29 = input.index();
				input.rewind();
				s = -1;
				if ((synpred338_MySQL())) {
					s = 3;
				}

				else if ((true)) {
					s = 1;
				}

				input.seek(index260_29);
				if (s >= 0)
					return s;
				break;
			case 9:
				int LA260_46 = input.LA(1);

				int index260_46 = input.index();
				input.rewind();
				s = -1;
				if ((synpred338_MySQL())) {
					s = 3;
				}

				else if ((true)) {
					s = 1;
				}

				input.seek(index260_46);
				if (s >= 0)
					return s;
				break;
			case 10:
				int LA260_43 = input.LA(1);

				int index260_43 = input.index();
				input.rewind();
				s = -1;
				if ((synpred338_MySQL())) {
					s = 3;
				}

				else if ((true)) {
					s = 1;
				}

				input.seek(index260_43);
				if (s >= 0)
					return s;
				break;
			case 11:
				int LA260_58 = input.LA(1);

				int index260_58 = input.index();
				input.rewind();
				s = -1;
				if ((synpred338_MySQL())) {
					s = 3;
				}

				else if ((true)) {
					s = 1;
				}

				input.seek(index260_58);
				if (s >= 0)
					return s;
				break;
			case 12:
				int LA260_38 = input.LA(1);

				int index260_38 = input.index();
				input.rewind();
				s = -1;
				if ((synpred338_MySQL())) {
					s = 3;
				}

				else if ((true)) {
					s = 1;
				}

				input.seek(index260_38);
				if (s >= 0)
					return s;
				break;
			case 13:
				int LA260_60 = input.LA(1);

				int index260_60 = input.index();
				input.rewind();
				s = -1;
				if ((synpred338_MySQL())) {
					s = 3;
				}

				else if ((true)) {
					s = 1;
				}

				input.seek(index260_60);
				if (s >= 0)
					return s;
				break;
			case 14:
				int LA260_68 = input.LA(1);

				int index260_68 = input.index();
				input.rewind();
				s = -1;
				if ((synpred338_MySQL())) {
					s = 3;
				}

				else if ((true)) {
					s = 1;
				}

				input.seek(index260_68);
				if (s >= 0)
					return s;
				break;
			case 15:
				int LA260_73 = input.LA(1);

				int index260_73 = input.index();
				input.rewind();
				s = -1;
				if ((synpred338_MySQL())) {
					s = 3;
				}

				else if ((true)) {
					s = 1;
				}

				input.seek(index260_73);
				if (s >= 0)
					return s;
				break;
			case 16:
				int LA260_66 = input.LA(1);

				int index260_66 = input.index();
				input.rewind();
				s = -1;
				if ((synpred338_MySQL())) {
					s = 3;
				}

				else if ((true)) {
					s = 1;
				}

				input.seek(index260_66);
				if (s >= 0)
					return s;
				break;
			case 17:
				int LA260_40 = input.LA(1);

				int index260_40 = input.index();
				input.rewind();
				s = -1;
				if ((synpred338_MySQL())) {
					s = 3;
				}

				else if ((true)) {
					s = 1;
				}

				input.seek(index260_40);
				if (s >= 0)
					return s;
				break;
			case 18:
				int LA260_54 = input.LA(1);

				int index260_54 = input.index();
				input.rewind();
				s = -1;
				if ((synpred338_MySQL())) {
					s = 3;
				}

				else if ((true)) {
					s = 1;
				}

				input.seek(index260_54);
				if (s >= 0)
					return s;
				break;
			case 19:
				int LA260_48 = input.LA(1);

				int index260_48 = input.index();
				input.rewind();
				s = -1;
				if ((synpred338_MySQL())) {
					s = 3;
				}

				else if ((true)) {
					s = 1;
				}

				input.seek(index260_48);
				if (s >= 0)
					return s;
				break;
			case 20:
				int LA260_27 = input.LA(1);

				int index260_27 = input.index();
				input.rewind();
				s = -1;
				if ((synpred338_MySQL())) {
					s = 3;
				}

				else if ((true)) {
					s = 1;
				}

				input.seek(index260_27);
				if (s >= 0)
					return s;
				break;
			}
			if (state.backtracking > 0) {
				state.failed = true;
				return -1;
			}
			NoViableAltException nvae = new NoViableAltException(
					getDescription(), 260, _s, input);
			error(nvae);
			throw nvae;
		}
	}

	static final String DFA285_eotS = "\27\uffff";
	static final String DFA285_eofS = "\27\uffff";
	static final String DFA285_minS = "\1\35\3\uffff\1\u0084\22\uffff";
	static final String DFA285_maxS = "\1\u00af\3\uffff\1\u0085\22\uffff";
	static final String DFA285_acceptS = "\1\uffff\1\1\1\2\1\3\1\uffff\1\4\1\5\1\6\1\7\1\10\1\11\1\12\1\13"
			+ "\1\14\1\15\1\16\1\17\1\20\1\21\1\22\1\23\1\24\1\25";
	static final String DFA285_specialS = "\27\uffff}>";
	static final String[] DFA285_transitionS = {
			"\1\26\62\uffff\1\4\5\uffff\1\14\21\uffff\1\2\1\10\32\uffff"
					+ "\1\5\1\7\25\uffff\1\1\1\3\1\6\1\11\1\12\1\uffff\1\13\1\15\2"
					+ "\uffff\1\16\1\17\1\20\1\21\1\22\1\23\3\uffff\1\24\1\25",
			"", "", "", "\1\5\1\7", "", "", "", "", "", "", "", "", "", "", "",
			"", "", "", "", "", "", "" };

	static final short[] DFA285_eot = DFA.unpackEncodedString(DFA285_eotS);
	static final short[] DFA285_eof = DFA.unpackEncodedString(DFA285_eofS);
	static final char[] DFA285_min = DFA
			.unpackEncodedStringToUnsignedChars(DFA285_minS);
	static final char[] DFA285_max = DFA
			.unpackEncodedStringToUnsignedChars(DFA285_maxS);
	static final short[] DFA285_accept = DFA
			.unpackEncodedString(DFA285_acceptS);
	static final short[] DFA285_special = DFA
			.unpackEncodedString(DFA285_specialS);
	static final short[][] DFA285_transition;

	static {
		int numStates = DFA285_transitionS.length;
		DFA285_transition = new short[numStates][];
		for (int i = 0; i < numStates; i++) {
			DFA285_transition[i] = DFA
					.unpackEncodedString(DFA285_transitionS[i]);
		}
	}

	class DFA285 extends DFA {

		public DFA285(BaseRecognizer recognizer) {
			this.recognizer = recognizer;
			this.decisionNumber = 285;
			this.eot = DFA285_eot;
			this.eof = DFA285_eof;
			this.min = DFA285_min;
			this.max = DFA285_max;
			this.accept = DFA285_accept;
			this.special = DFA285_special;
			this.transition = DFA285_transition;
		}

		public String getDescription() {
			return "379:1: table_option : ( ( ENGINE_SYM ( EQ_SYM )? engine_name ) | ( AUTO_INCREMENT ( EQ_SYM )? INTEGER_NUM ) | ( AVG_ROW_LENGTH ( EQ_SYM )? INTEGER_NUM ) | ( ( DEFAULT )? CHARACTER_SYM SET_SYM ( EQ_SYM )? charset_name ) | ( CHECKSUM_SYM ( EQ_SYM )? INTEGER_NUM ) | ( ( DEFAULT )? COLLATE_SYM ( EQ_SYM )? collation_name ) | ( COMMENT_SYM ( EQ_SYM )? TEXT_STRING ) | ( CONNECTION_SYM ( EQ_SYM )? TEXT_STRING ) | ( DATA_SYM DIRECTORY_SYM ( EQ_SYM )? TEXT_STRING ) | ( DELAY_KEY_WRITE_SYM ( EQ_SYM )? INTEGER_NUM ) | ( INDEX_SYM DIRECTORY_SYM ( EQ_SYM )? TEXT_STRING ) | ( INSERT_METHOD ( EQ_SYM )? ( NO_SYM | FIRST_SYM | LAST_SYM ) ) | ( KEY_BLOCK_SIZE ( EQ_SYM )? INTEGER_NUM ) | ( MAX_ROWS ( EQ_SYM )? INTEGER_NUM ) | ( MIN_ROWS ( EQ_SYM )? INTEGER_NUM ) | ( PACK_KEYS_SYM ( EQ_SYM )? ( INTEGER_NUM | DEFAULT ) ) | ( PASSWORD ( EQ_SYM )? TEXT_STRING ) | ( ROW_FORMAT_SYM ( EQ_SYM )? ( DEFAULT | DYNAMIC_SYM | FIXED_SYM | COMPRESSED_SYM | REDUNDANT_SYM | COMPACT_SYM ) ) | ( STATS_AUTO_RECALC ( EQ_SYM )? ( DEFAULT | INTEGER_NUM ) ) | ( STATS_PERSISTENT ( EQ_SYM )? ( DEFAULT | INTEGER_NUM ) ) | ( UNION_SYM ( EQ_SYM )? LPAREN table_name ( COMMA table_name )* RPAREN ) );";
		}
	}

	static final String DFA383_eotS = "\62\uffff";
	static final String DFA383_eofS = "\62\uffff";
	static final String DFA383_minS = "\1\35\1\uffff\1\u0084\1\121\1\77\5\uffff\1\114\22\uffff\1\115\4"
			+ "\uffff\1\123\1\uffff\1\77\11\uffff\1\u0087\1\0\1\123\1\uffff";
	static final String DFA383_maxS = "\1\u00d6\1\uffff\1\u0085\1\121\1\u01d2\5\uffff\1\u01d2\22\uffff"
			+ "\1\u010f\4\uffff\1\u01d2\1\uffff\1\u01d2\11\uffff\1\u010f\1\0\1"
			+ "\146\1\uffff";
	static final String DFA383_acceptS = "\1\uffff\1\1\3\uffff\1\12\1\13\1\14\1\15\1\16\1\uffff\1\23\1\24"
			+ "\1\25\1\26\1\27\1\31\1\32\1\33\1\36\1\37\1\40\1\41\1\42\1\43\1\44"
			+ "\1\45\1\46\1\47\1\uffff\1\4\1\7\1\10\1\34\1\uffff\1\11\1\uffff\1"
			+ "\3\1\2\1\6\1\5\1\20\1\21\1\22\1\35\1\17\3\uffff\1\30";
	static final String DFA383_specialS = "\57\uffff\1\0\2\uffff}>";
	static final String[] DFA383_transitionS = {
			"\1\1\17\uffff\1\10\13\uffff\1\16\26\uffff\1\2\5\uffff\1\1\1"
					+ "\5\5\uffff\1\12\11\uffff\1\30\2\1\32\uffff\1\3\1\1\25\uffff"
					+ "\5\1\1\uffff\2\1\2\uffff\6\1\3\uffff\2\1\15\uffff\1\6\1\4\2"
					+ "\uffff\1\7\1\11\1\13\1\uffff\1\14\1\15\2\uffff\1\17\1\20\1\uffff"
					+ "\1\21\1\22\1\23\1\24\1\25\1\26\1\27\1\31\1\32\1\33\1\34",
			"",
			"\1\3\1\1",
			"\1\35",
			"\1\45\14\uffff\1\36\6\uffff\1\47\1\37\1\40\1\36\15\uffff\1"
					+ "\42\1\50\1\43\111\uffff\1\41\16\uffff\1\44\u0112\uffff\1\46",
			"",
			"",
			"",
			"",
			"",
			"\1\52\11\uffff\1\52\16\uffff\1\51\1\53\111\uffff\1\54\16\uffff"
					+ "\1\55\u0112\uffff\1\55", "", "", "", "", "", "", "", "",
			"", "", "", "", "", "", "", "", "", "",
			"\1\56\71\uffff\1\57\145\uffff\43\57", "", "", "", "",
			"\1\47\21\uffff\1\50\1\43\u016b\uffff\1\60", "",
			"\1\45\u0192\uffff\1\46", "", "", "", "", "", "", "", "", "",
			"\1\57\145\uffff\43\57", "\1\uffff", "\1\47\21\uffff\1\50\1\43", "" };

	static final short[] DFA383_eot = DFA.unpackEncodedString(DFA383_eotS);
	static final short[] DFA383_eof = DFA.unpackEncodedString(DFA383_eofS);
	static final char[] DFA383_min = DFA
			.unpackEncodedStringToUnsignedChars(DFA383_minS);
	static final char[] DFA383_max = DFA
			.unpackEncodedStringToUnsignedChars(DFA383_maxS);
	static final short[] DFA383_accept = DFA
			.unpackEncodedString(DFA383_acceptS);
	static final short[] DFA383_special = DFA
			.unpackEncodedString(DFA383_specialS);
	static final short[][] DFA383_transition;

	static {
		int numStates = DFA383_transitionS.length;
		DFA383_transition = new short[numStates][];
		for (int i = 0; i < numStates; i++) {
			DFA383_transition[i] = DFA
					.unpackEncodedString(DFA383_transitionS[i]);
		}
	}

	class DFA383 extends DFA {

		public DFA383(BaseRecognizer recognizer) {
			this.recognizer = recognizer;
			this.decisionNumber = 383;
			this.eot = DFA383_eot;
			this.eof = DFA383_eof;
			this.min = DFA383_min;
			this.max = DFA383_max;
			this.accept = DFA383_accept;
			this.special = DFA383_special;
			this.transition = DFA383_transition;
		}

		public String getDescription() {
			return "463:1: alter_table_specification : ( table_options | ( ADD_SYM ( COLUMN_SYM )? column_name column_definition ( ( FIRST_SYM | AFTER_SYM ) column_name )? ) | ( ADD_SYM ( COLUMN_SYM )? LPAREN column_definitions RPAREN ) | ( ADD_SYM ( INDEX_SYM | KEY_SYM ) ( index_name )? ( index_type )? LPAREN index_column_names RPAREN ( index_option )* ) | ( ADD_SYM ( CONSTRAINT ( constraint_symbol_name )? )? PRIMARY_SYM KEY_SYM ( index_type )? LPAREN index_column_names RPAREN ( index_option )* ) | ( ADD_SYM ( CONSTRAINT ( constraint_symbol_name )? )? UNIQUE_SYM ( INDEX_SYM | KEY_SYM )? ( index_name )? ( index_type )? LPAREN index_column_name ( COMMA index_column_name )* RPAREN ( index_option )* ) | ( ADD_SYM FULLTEXT_SYM ( INDEX_SYM | KEY_SYM )? ( index_name )? LPAREN index_column_names RPAREN ( index_option )* ) | ( ADD_SYM SPATIAL_SYM ( INDEX_SYM | KEY_SYM )? ( index_name )? LPAREN index_column_names RPAREN ( index_option )* ) | ( ADD_SYM ( CONSTRAINT ( constraint_symbol_name )? )? FOREIGN KEY_SYM ( index_name )? LPAREN index_column_names RPAREN reference_definition ) | ( ALGORITHM_SYM ( EQ_SYM )? ( DEFAULT | INPLACE_SYM | COPY_SYM ) ) | ( ALTER ( COLUMN_SYM )? column_name ( ( SET_SYM DEFAULT literal_value ) | ( DROP DEFAULT ) ) ) | ( CHANGE ( COLUMN_SYM )? column_name column_name column_definition ( FIRST_SYM | AFTER_SYM column_name )? ) | ( LOCK ( EQ_SYM )? ( DEFAULT | NONE_SYM | SHARED_SYM | EXCLUSIVE_SYM ) ) | ( MODIFY_SYM ( COLUMN_SYM )? column_name column_definition ( FIRST_SYM | AFTER_SYM column_name )? ) | ( DROP ( COLUMN_SYM )? column_name ) | ( DROP PRIMARY_SYM KEY_SYM ) | ( DROP ( INDEX_SYM | KEY_SYM ) index_name ) | ( DROP FOREIGN KEY_SYM foreign_key_symbol_name ) | ( DISABLE_SYM KEYS ) | ( ENABLE_SYM KEYS ) | ( RENAME ( TO_SYM | AS_SYM )? table_name ) | ( ORDER_SYM BY_SYM column_name ( COMMA column_name )* ) | ( CONVERT_SYM TO_SYM CHARACTER_SYM SET_SYM charset_name ( COLLATE_SYM collation_name )? ) | ( ( DEFAULT )? CHARACTER_SYM SET_SYM ( EQ_SYM )? charset_name ( COLLATE_SYM ( EQ_SYM )? collation_name )? ) | ( DISCARD TABLESPACE ) | ( IMPORT TABLESPACE ) | ( FORCE_SYM ) | ( ADD_SYM PARTITION_SYM LPAREN partition_definition RPAREN ) | ( DROP PARTITION_SYM partition_names ) | ( TRUNCATE PARTITION_SYM ( partition_names | ALL ) ) | ( COALESCE PARTITION_SYM INTEGER_NUM ) | ( REORGANIZE_SYM PARTITION_SYM partition_names INTO LPAREN partition_definition ( COMMA partition_definition )* RPAREN ) | ( EXCHANGE_SYM PARTITION_SYM partition_name WITH TABLE table_name ) | ( ANALYZE_SYM PARTITION_SYM ( partition_names | ALL ) ) | ( CHECK_SYM PARTITION_SYM ( partition_names | ALL ) ) | ( OPTIMIZE PARTITION_SYM ( partition_names | ALL ) ) | ( REBUILD_SYM PARTITION_SYM ( partition_names | ALL ) ) | ( REPAIR PARTITION_SYM ( partition_names | ALL ) ) | ( REMOVE_SYM PARTITIONING_SYM ) );";
		}

		public int specialStateTransition(int s, IntStream _input)
				throws NoViableAltException {
			TokenStream input = (TokenStream) _input;
			int _s = s;
			switch (s) {
			case 0:
				int LA383_47 = input.LA(1);

				int index383_47 = input.index();
				input.rewind();
				s = -1;
				if ((synpred443_MySQL())) {
					s = 1;
				}

				else if ((synpred522_MySQL())) {
					s = 49;
				}

				input.seek(index383_47);
				if (s >= 0)
					return s;
				break;
			}
			if (state.backtracking > 0) {
				state.failed = true;
				return -1;
			}
			NoViableAltException nvae = new NoViableAltException(
					getDescription(), 383, _s, input);
			error(nvae);
			throw nvae;
		}
	}

	static final String DFA414_eotS = "\14\uffff";
	static final String DFA414_eofS = "\6\uffff\1\10\5\uffff";
	static final String DFA414_minS = "\1\56\1\u0111\1\uffff\1\u0112\1\uffff\1\60\1\32\1\66\1\uffff\1"
			+ "\u0114\1\0\1\uffff";
	static final String DFA414_maxS = "\1\65\1\u0115\1\uffff\1\u0112\1\uffff\1\60\1\u01ed\1\u0113\1\uffff"
			+ "\1\u0114\1\0\1\uffff";
	static final String DFA414_acceptS = "\2\uffff\1\4\1\uffff\1\3\3\uffff\1\1\2\uffff\1\2";
	static final String DFA414_specialS = "\12\uffff\1\0\1\uffff}>";
	static final String[] DFA414_transitionS = {
			"\1\1\6\uffff\1\2",
			"\1\3\3\uffff\1\4",
			"",
			"\1\5",
			"",
			"\1\6",
			"\4\10\5\uffff\1\10\6\uffff\2\10\1\uffff\2\10\2\uffff\2\10"
					+ "\1\uffff\1\10\1\7\2\uffff\5\10\1\uffff\1\10\1\uffff\1\10\6\uffff"
					+ "\1\10\2\uffff\1\10\2\uffff\1\10\3\uffff\1\10\17\uffff\1\10\1"
					+ "\uffff\1\10\36\uffff\1\10\2\uffff\1\10\52\uffff\1\10\27\uffff"
					+ "\1\10\21\uffff\1\10\15\uffff\5\10\44\uffff\1\10\4\uffff\22\10"
					+ "\2\uffff\2\10\57\uffff\1\10\15\uffff\1\10\150\uffff\4\10\1\uffff"
					+ "\11\10\5\uffff\4\10\2\uffff\3\10",
			"\1\10\60\uffff\1\10\175\uffff\2\10\54\uffff\1\11", "", "\1\12",
			"\1\uffff", "" };

	static final short[] DFA414_eot = DFA.unpackEncodedString(DFA414_eotS);
	static final short[] DFA414_eof = DFA.unpackEncodedString(DFA414_eofS);
	static final char[] DFA414_min = DFA
			.unpackEncodedStringToUnsignedChars(DFA414_minS);
	static final char[] DFA414_max = DFA
			.unpackEncodedStringToUnsignedChars(DFA414_maxS);
	static final short[] DFA414_accept = DFA
			.unpackEncodedString(DFA414_acceptS);
	static final short[] DFA414_special = DFA
			.unpackEncodedString(DFA414_specialS);
	static final short[][] DFA414_transition;

	static {
		int numStates = DFA414_transitionS.length;
		DFA414_transition = new short[numStates][];
		for (int i = 0; i < numStates; i++) {
			DFA414_transition[i] = DFA
					.unpackEncodedString(DFA414_transitionS[i]);
		}
	}

	class DFA414 extends DFA {

		public DFA414(BaseRecognizer recognizer) {
			this.recognizer = recognizer;
			this.decisionNumber = 414;
			this.eot = DFA414_eot;
			this.eof = DFA414_eof;
			this.min = DFA414_min;
			this.max = DFA414_max;
			this.accept = DFA414_accept;
			this.special = DFA414_special;
			this.transition = DFA414_transition;
		}

		public String getDescription() {
			return "628:1: search_modifier : ( ( IN_SYM NATURAL LANGUAGE MODE_SYM ) | ( IN_SYM NATURAL LANGUAGE MODE_SYM WITH QUERY_SYM EXPANSION_SYM ) | ( IN_SYM BOOLEAN_SYM MODE_SYM ) | ( WITH QUERY_SYM EXPANSION_SYM ) );";
		}

		public int specialStateTransition(int s, IntStream _input)
				throws NoViableAltException {
			TokenStream input = (TokenStream) _input;
			int _s = s;
			switch (s) {
			case 0:
				int LA414_10 = input.LA(1);

				int index414_10 = input.index();
				input.rewind();
				s = -1;
				if ((synpred627_MySQL())) {
					s = 8;
				}

				else if ((synpred628_MySQL())) {
					s = 11;
				}

				input.seek(index414_10);
				if (s >= 0)
					return s;
				break;
			}
			if (state.backtracking > 0) {
				state.failed = true;
				return -1;
			}
			NoViableAltException nvae = new NoViableAltException(
					getDescription(), 414, _s, input);
			error(nvae);
			throw nvae;
		}
	}

	static final String DFA428_eotS = "\37\uffff";
	static final String DFA428_eofS = "\37\uffff";
	static final String DFA428_minS = "\1\67\32\0\4\uffff";
	static final String DFA428_maxS = "\1\u01ea\32\0\4\uffff";
	static final String DFA428_acceptS = "\33\uffff\1\3\1\1\1\2\1\4";
	static final String DFA428_specialS = "\1\uffff\1\0\1\1\1\2\1\3\1\4\1\5\1\6\1\7\1\10\1\11\1\12\1\13\1"
			+ "\14\1\15\1\16\1\17\1\20\1\21\1\22\1\23\1\24\1\25\1\26\1\27\1\30"
			+ "\1\31\4\uffff}>";
	static final String[] DFA428_transitionS = {
			"\1\6\7\uffff\1\25\10\uffff\1\17\5\uffff\1\20\1\uffff\1\20\17"
					+ "\uffff\1\20\1\33\1\27\7\uffff\1\5\3\uffff\1\12\16\uffff\3\16"
					+ "\2\uffff\1\16\1\17\3\uffff\1\4\13\uffff\1\30\25\uffff\1\20\37"
					+ "\uffff\1\22\4\uffff\1\14\14\uffff\1\17\4\uffff\1\20\15\uffff"
					+ "\1\17\47\uffff\3\16\1\uffff\3\16\15\uffff\1\1\1\2\1\6\1\7\2"
					+ "\10\1\11\35\14\17\17\1\15\4\17\1\15\23\17\53\16\41\20\20\23"
					+ "\1\13\15\uffff\1\3\1\24\1\26\1\21\1\31\5\uffff\1\32",
			"\1\uffff", "\1\uffff", "\1\uffff", "\1\uffff", "\1\uffff",
			"\1\uffff", "\1\uffff", "\1\uffff", "\1\uffff", "\1\uffff",
			"\1\uffff", "\1\uffff", "\1\uffff", "\1\uffff", "\1\uffff",
			"\1\uffff", "\1\uffff", "\1\uffff", "\1\uffff", "\1\uffff",
			"\1\uffff", "\1\uffff", "\1\uffff", "\1\uffff", "\1\uffff",
			"\1\uffff", "", "", "", "" };

	static final short[] DFA428_eot = DFA.unpackEncodedString(DFA428_eotS);
	static final short[] DFA428_eof = DFA.unpackEncodedString(DFA428_eofS);
	static final char[] DFA428_min = DFA
			.unpackEncodedStringToUnsignedChars(DFA428_minS);
	static final char[] DFA428_max = DFA
			.unpackEncodedStringToUnsignedChars(DFA428_maxS);
	static final short[] DFA428_accept = DFA
			.unpackEncodedString(DFA428_acceptS);
	static final short[] DFA428_special = DFA
			.unpackEncodedString(DFA428_specialS);
	static final short[][] DFA428_transition;

	static {
		int numStates = DFA428_transitionS.length;
		DFA428_transition = new short[numStates][];
		for (int i = 0; i < numStates; i++) {
			DFA428_transition[i] = DFA
					.unpackEncodedString(DFA428_transitionS[i]);
		}
	}

	class DFA428 extends DFA {

		public DFA428(BaseRecognizer recognizer) {
			this.recognizer = recognizer;
			this.decisionNumber = 428;
			this.eot = DFA428_eot;
			this.eof = DFA428_eof;
			this.min = DFA428_min;
			this.max = DFA428_max;
			this.accept = DFA428_accept;
			this.special = DFA428_special;
			this.transition = DFA428_transition;
		}

		public String getDescription() {
			return "897:1: bool_primary : ( ( predicate relational_op predicate ) -> ^( relational_op predicate predicate ) | ( predicate relational_op ( ALL | ANY )? subquery ) | ( ( NOT_SYM )? EXISTS subquery ) | predicate );";
		}

		public int specialStateTransition(int s, IntStream _input)
				throws NoViableAltException {
			TokenStream input = (TokenStream) _input;
			int _s = s;
			switch (s) {
			case 0:
				int LA428_1 = input.LA(1);

				int index428_1 = input.index();
				input.rewind();
				s = -1;
				if ((synpred848_MySQL())) {
					s = 28;
				}

				else if ((synpred851_MySQL())) {
					s = 29;
				}

				else if ((true)) {
					s = 30;
				}

				input.seek(index428_1);
				if (s >= 0)
					return s;
				break;
			case 1:
				int LA428_2 = input.LA(1);

				int index428_2 = input.index();
				input.rewind();
				s = -1;
				if ((synpred848_MySQL())) {
					s = 28;
				}

				else if ((synpred851_MySQL())) {
					s = 29;
				}

				else if ((true)) {
					s = 30;
				}

				input.seek(index428_2);
				if (s >= 0)
					return s;
				break;
			case 2:
				int LA428_3 = input.LA(1);

				int index428_3 = input.index();
				input.rewind();
				s = -1;
				if ((synpred848_MySQL())) {
					s = 28;
				}

				else if ((synpred851_MySQL())) {
					s = 29;
				}

				else if ((true)) {
					s = 30;
				}

				input.seek(index428_3);
				if (s >= 0)
					return s;
				break;
			case 3:
				int LA428_4 = input.LA(1);

				int index428_4 = input.index();
				input.rewind();
				s = -1;
				if ((synpred848_MySQL())) {
					s = 28;
				}

				else if ((synpred851_MySQL())) {
					s = 29;
				}

				else if ((true)) {
					s = 30;
				}

				input.seek(index428_4);
				if (s >= 0)
					return s;
				break;
			case 4:
				int LA428_5 = input.LA(1);

				int index428_5 = input.index();
				input.rewind();
				s = -1;
				if ((synpred848_MySQL())) {
					s = 28;
				}

				else if ((synpred851_MySQL())) {
					s = 29;
				}

				else if ((true)) {
					s = 30;
				}

				input.seek(index428_5);
				if (s >= 0)
					return s;
				break;
			case 5:
				int LA428_6 = input.LA(1);

				int index428_6 = input.index();
				input.rewind();
				s = -1;
				if ((synpred848_MySQL())) {
					s = 28;
				}

				else if ((synpred851_MySQL())) {
					s = 29;
				}

				else if ((true)) {
					s = 30;
				}

				input.seek(index428_6);
				if (s >= 0)
					return s;
				break;
			case 6:
				int LA428_7 = input.LA(1);

				int index428_7 = input.index();
				input.rewind();
				s = -1;
				if ((synpred848_MySQL())) {
					s = 28;
				}

				else if ((synpred851_MySQL())) {
					s = 29;
				}

				else if ((true)) {
					s = 30;
				}

				input.seek(index428_7);
				if (s >= 0)
					return s;
				break;
			case 7:
				int LA428_8 = input.LA(1);

				int index428_8 = input.index();
				input.rewind();
				s = -1;
				if ((synpred848_MySQL())) {
					s = 28;
				}

				else if ((synpred851_MySQL())) {
					s = 29;
				}

				else if ((true)) {
					s = 30;
				}

				input.seek(index428_8);
				if (s >= 0)
					return s;
				break;
			case 8:
				int LA428_9 = input.LA(1);

				int index428_9 = input.index();
				input.rewind();
				s = -1;
				if ((synpred848_MySQL())) {
					s = 28;
				}

				else if ((synpred851_MySQL())) {
					s = 29;
				}

				else if ((true)) {
					s = 30;
				}

				input.seek(index428_9);
				if (s >= 0)
					return s;
				break;
			case 9:
				int LA428_10 = input.LA(1);

				int index428_10 = input.index();
				input.rewind();
				s = -1;
				if ((synpred848_MySQL())) {
					s = 28;
				}

				else if ((synpred851_MySQL())) {
					s = 29;
				}

				else if ((true)) {
					s = 30;
				}

				input.seek(index428_10);
				if (s >= 0)
					return s;
				break;
			case 10:
				int LA428_11 = input.LA(1);

				int index428_11 = input.index();
				input.rewind();
				s = -1;
				if ((synpred848_MySQL())) {
					s = 28;
				}

				else if ((synpred851_MySQL())) {
					s = 29;
				}

				else if ((true)) {
					s = 30;
				}

				input.seek(index428_11);
				if (s >= 0)
					return s;
				break;
			case 11:
				int LA428_12 = input.LA(1);

				int index428_12 = input.index();
				input.rewind();
				s = -1;
				if ((synpred848_MySQL())) {
					s = 28;
				}

				else if ((synpred851_MySQL())) {
					s = 29;
				}

				else if ((true)) {
					s = 30;
				}

				input.seek(index428_12);
				if (s >= 0)
					return s;
				break;
			case 12:
				int LA428_13 = input.LA(1);

				int index428_13 = input.index();
				input.rewind();
				s = -1;
				if ((synpred848_MySQL())) {
					s = 28;
				}

				else if ((synpred851_MySQL())) {
					s = 29;
				}

				else if ((true)) {
					s = 30;
				}

				input.seek(index428_13);
				if (s >= 0)
					return s;
				break;
			case 13:
				int LA428_14 = input.LA(1);

				int index428_14 = input.index();
				input.rewind();
				s = -1;
				if ((synpred848_MySQL())) {
					s = 28;
				}

				else if ((synpred851_MySQL())) {
					s = 29;
				}

				else if ((true)) {
					s = 30;
				}

				input.seek(index428_14);
				if (s >= 0)
					return s;
				break;
			case 14:
				int LA428_15 = input.LA(1);

				int index428_15 = input.index();
				input.rewind();
				s = -1;
				if ((synpred848_MySQL())) {
					s = 28;
				}

				else if ((synpred851_MySQL())) {
					s = 29;
				}

				else if ((true)) {
					s = 30;
				}

				input.seek(index428_15);
				if (s >= 0)
					return s;
				break;
			case 15:
				int LA428_16 = input.LA(1);

				int index428_16 = input.index();
				input.rewind();
				s = -1;
				if ((synpred848_MySQL())) {
					s = 28;
				}

				else if ((synpred851_MySQL())) {
					s = 29;
				}

				else if ((true)) {
					s = 30;
				}

				input.seek(index428_16);
				if (s >= 0)
					return s;
				break;
			case 16:
				int LA428_17 = input.LA(1);

				int index428_17 = input.index();
				input.rewind();
				s = -1;
				if ((synpred848_MySQL())) {
					s = 28;
				}

				else if ((synpred851_MySQL())) {
					s = 29;
				}

				else if ((true)) {
					s = 30;
				}

				input.seek(index428_17);
				if (s >= 0)
					return s;
				break;
			case 17:
				int LA428_18 = input.LA(1);

				int index428_18 = input.index();
				input.rewind();
				s = -1;
				if ((synpred848_MySQL())) {
					s = 28;
				}

				else if ((synpred851_MySQL())) {
					s = 29;
				}

				else if ((true)) {
					s = 30;
				}

				input.seek(index428_18);
				if (s >= 0)
					return s;
				break;
			case 18:
				int LA428_19 = input.LA(1);

				int index428_19 = input.index();
				input.rewind();
				s = -1;
				if ((synpred848_MySQL())) {
					s = 28;
				}

				else if ((synpred851_MySQL())) {
					s = 29;
				}

				else if ((true)) {
					s = 30;
				}

				input.seek(index428_19);
				if (s >= 0)
					return s;
				break;
			case 19:
				int LA428_20 = input.LA(1);

				int index428_20 = input.index();
				input.rewind();
				s = -1;
				if ((synpred848_MySQL())) {
					s = 28;
				}

				else if ((synpred851_MySQL())) {
					s = 29;
				}

				else if ((true)) {
					s = 30;
				}

				input.seek(index428_20);
				if (s >= 0)
					return s;
				break;
			case 20:
				int LA428_21 = input.LA(1);

				int index428_21 = input.index();
				input.rewind();
				s = -1;
				if ((synpred848_MySQL())) {
					s = 28;
				}

				else if ((synpred851_MySQL())) {
					s = 29;
				}

				else if ((true)) {
					s = 30;
				}

				input.seek(index428_21);
				if (s >= 0)
					return s;
				break;
			case 21:
				int LA428_22 = input.LA(1);

				int index428_22 = input.index();
				input.rewind();
				s = -1;
				if ((synpred848_MySQL())) {
					s = 28;
				}

				else if ((synpred851_MySQL())) {
					s = 29;
				}

				else if ((true)) {
					s = 30;
				}

				input.seek(index428_22);
				if (s >= 0)
					return s;
				break;
			case 22:
				int LA428_23 = input.LA(1);

				int index428_23 = input.index();
				input.rewind();
				s = -1;
				if ((synpred848_MySQL())) {
					s = 28;
				}

				else if ((synpred851_MySQL())) {
					s = 29;
				}

				else if ((synpred853_MySQL())) {
					s = 27;
				}

				else if ((true)) {
					s = 30;
				}

				input.seek(index428_23);
				if (s >= 0)
					return s;
				break;
			case 23:
				int LA428_24 = input.LA(1);

				int index428_24 = input.index();
				input.rewind();
				s = -1;
				if ((synpred848_MySQL())) {
					s = 28;
				}

				else if ((synpred851_MySQL())) {
					s = 29;
				}

				else if ((true)) {
					s = 30;
				}

				input.seek(index428_24);
				if (s >= 0)
					return s;
				break;
			case 24:
				int LA428_25 = input.LA(1);

				int index428_25 = input.index();
				input.rewind();
				s = -1;
				if ((synpred848_MySQL())) {
					s = 28;
				}

				else if ((synpred851_MySQL())) {
					s = 29;
				}

				else if ((true)) {
					s = 30;
				}

				input.seek(index428_25);
				if (s >= 0)
					return s;
				break;
			case 25:
				int LA428_26 = input.LA(1);

				int index428_26 = input.index();
				input.rewind();
				s = -1;
				if ((synpred848_MySQL())) {
					s = 28;
				}

				else if ((synpred851_MySQL())) {
					s = 29;
				}

				else if ((true)) {
					s = 30;
				}

				input.seek(index428_26);
				if (s >= 0)
					return s;
				break;
			}
			if (state.backtracking > 0) {
				state.failed = true;
				return -1;
			}
			NoViableAltException nvae = new NoViableAltException(
					getDescription(), 428, _s, input);
			error(nvae);
			throw nvae;
		}
	}

	static final String DFA435_eotS = "\41\uffff";
	static final String DFA435_eofS = "\41\uffff";
	static final String DFA435_minS = "\1\67\32\0\6\uffff";
	static final String DFA435_maxS = "\1\u01ea\32\0\6\uffff";
	static final String DFA435_acceptS = "\33\uffff\1\1\1\2\1\3\1\4\1\5\1\6";
	static final String DFA435_specialS = "\1\uffff\1\0\1\1\1\2\1\3\1\4\1\5\1\6\1\7\1\10\1\11\1\12\1\13\1"
			+ "\14\1\15\1\16\1\17\1\20\1\21\1\22\1\23\1\24\1\25\1\26\1\27\1\30"
			+ "\1\31\6\uffff}>";
	static final String[] DFA435_transitionS = {
			"\1\6\7\uffff\1\25\10\uffff\1\17\5\uffff\1\20\1\uffff\1\20\17"
					+ "\uffff\1\20\1\uffff\1\27\7\uffff\1\5\3\uffff\1\12\16\uffff\3"
					+ "\16\2\uffff\1\16\1\17\3\uffff\1\4\13\uffff\1\30\25\uffff\1\20"
					+ "\37\uffff\1\22\4\uffff\1\14\14\uffff\1\17\4\uffff\1\20\15\uffff"
					+ "\1\17\47\uffff\3\16\1\uffff\3\16\15\uffff\1\1\1\2\1\6\1\7\2"
					+ "\10\1\11\35\14\17\17\1\15\4\17\1\15\23\17\53\16\41\20\20\23"
					+ "\1\13\15\uffff\1\3\1\24\1\26\1\21\1\31\5\uffff\1\32",
			"\1\uffff", "\1\uffff", "\1\uffff", "\1\uffff", "\1\uffff",
			"\1\uffff", "\1\uffff", "\1\uffff", "\1\uffff", "\1\uffff",
			"\1\uffff", "\1\uffff", "\1\uffff", "\1\uffff", "\1\uffff",
			"\1\uffff", "\1\uffff", "\1\uffff", "\1\uffff", "\1\uffff",
			"\1\uffff", "\1\uffff", "\1\uffff", "\1\uffff", "\1\uffff",
			"\1\uffff", "", "", "", "", "", "" };

	static final short[] DFA435_eot = DFA.unpackEncodedString(DFA435_eotS);
	static final short[] DFA435_eof = DFA.unpackEncodedString(DFA435_eofS);
	static final char[] DFA435_min = DFA
			.unpackEncodedStringToUnsignedChars(DFA435_minS);
	static final char[] DFA435_max = DFA
			.unpackEncodedStringToUnsignedChars(DFA435_maxS);
	static final short[] DFA435_accept = DFA
			.unpackEncodedString(DFA435_acceptS);
	static final short[] DFA435_special = DFA
			.unpackEncodedString(DFA435_specialS);
	static final short[][] DFA435_transition;

	static {
		int numStates = DFA435_transitionS.length;
		DFA435_transition = new short[numStates][];
		for (int i = 0; i < numStates; i++) {
			DFA435_transition[i] = DFA
					.unpackEncodedString(DFA435_transitionS[i]);
		}
	}

	class DFA435 extends DFA {

		public DFA435(BaseRecognizer recognizer) {
			this.recognizer = recognizer;
			this.decisionNumber = 435;
			this.eot = DFA435_eot;
			this.eof = DFA435_eof;
			this.min = DFA435_min;
			this.max = DFA435_max;
			this.accept = DFA435_accept;
			this.special = DFA435_special;
			this.transition = DFA435_transition;
		}

		public String getDescription() {
			return "903:1: predicate : ( ( bit_expr ( NOT_SYM )? IN_SYM ( subquery | expression_list ) ) | ( bit_expr ( NOT_SYM )? BETWEEN bit_expr AND_SYM predicate ) | ( bit_expr SOUNDS_SYM LIKE_SYM bit_expr ) | ( bit_expr ( NOT_SYM )? LIKE_SYM simple_expr ( ESCAPE_SYM simple_expr )? ) | ( bit_expr ( NOT_SYM )? REGEXP bit_expr ) | ( bit_expr ) );";
		}

		public int specialStateTransition(int s, IntStream _input)
				throws NoViableAltException {
			TokenStream input = (TokenStream) _input;
			int _s = s;
			switch (s) {
			case 0:
				int LA435_1 = input.LA(1);

				int index435_1 = input.index();
				input.rewind();
				s = -1;
				if ((synpred856_MySQL())) {
					s = 27;
				}

				else if ((synpred858_MySQL())) {
					s = 28;
				}

				else if ((synpred859_MySQL())) {
					s = 29;
				}

				else if ((synpred862_MySQL())) {
					s = 30;
				}

				else if ((synpred864_MySQL())) {
					s = 31;
				}

				else if ((true)) {
					s = 32;
				}

				input.seek(index435_1);
				if (s >= 0)
					return s;
				break;
			case 1:
				int LA435_2 = input.LA(1);

				int index435_2 = input.index();
				input.rewind();
				s = -1;
				if ((synpred856_MySQL())) {
					s = 27;
				}

				else if ((synpred858_MySQL())) {
					s = 28;
				}

				else if ((synpred859_MySQL())) {
					s = 29;
				}

				else if ((synpred862_MySQL())) {
					s = 30;
				}

				else if ((synpred864_MySQL())) {
					s = 31;
				}

				else if ((true)) {
					s = 32;
				}

				input.seek(index435_2);
				if (s >= 0)
					return s;
				break;
			case 2:
				int LA435_3 = input.LA(1);

				int index435_3 = input.index();
				input.rewind();
				s = -1;
				if ((synpred856_MySQL())) {
					s = 27;
				}

				else if ((synpred858_MySQL())) {
					s = 28;
				}

				else if ((synpred859_MySQL())) {
					s = 29;
				}

				else if ((synpred862_MySQL())) {
					s = 30;
				}

				else if ((synpred864_MySQL())) {
					s = 31;
				}

				else if ((true)) {
					s = 32;
				}

				input.seek(index435_3);
				if (s >= 0)
					return s;
				break;
			case 3:
				int LA435_4 = input.LA(1);

				int index435_4 = input.index();
				input.rewind();
				s = -1;
				if ((synpred856_MySQL())) {
					s = 27;
				}

				else if ((synpred858_MySQL())) {
					s = 28;
				}

				else if ((synpred859_MySQL())) {
					s = 29;
				}

				else if ((synpred862_MySQL())) {
					s = 30;
				}

				else if ((synpred864_MySQL())) {
					s = 31;
				}

				else if ((true)) {
					s = 32;
				}

				input.seek(index435_4);
				if (s >= 0)
					return s;
				break;
			case 4:
				int LA435_5 = input.LA(1);

				int index435_5 = input.index();
				input.rewind();
				s = -1;
				if ((synpred856_MySQL())) {
					s = 27;
				}

				else if ((synpred858_MySQL())) {
					s = 28;
				}

				else if ((synpred859_MySQL())) {
					s = 29;
				}

				else if ((synpred862_MySQL())) {
					s = 30;
				}

				else if ((synpred864_MySQL())) {
					s = 31;
				}

				else if ((true)) {
					s = 32;
				}

				input.seek(index435_5);
				if (s >= 0)
					return s;
				break;
			case 5:
				int LA435_6 = input.LA(1);

				int index435_6 = input.index();
				input.rewind();
				s = -1;
				if ((synpred856_MySQL())) {
					s = 27;
				}

				else if ((synpred858_MySQL())) {
					s = 28;
				}

				else if ((synpred859_MySQL())) {
					s = 29;
				}

				else if ((synpred862_MySQL())) {
					s = 30;
				}

				else if ((synpred864_MySQL())) {
					s = 31;
				}

				else if ((true)) {
					s = 32;
				}

				input.seek(index435_6);
				if (s >= 0)
					return s;
				break;
			case 6:
				int LA435_7 = input.LA(1);

				int index435_7 = input.index();
				input.rewind();
				s = -1;
				if ((synpred856_MySQL())) {
					s = 27;
				}

				else if ((synpred858_MySQL())) {
					s = 28;
				}

				else if ((synpred859_MySQL())) {
					s = 29;
				}

				else if ((synpred862_MySQL())) {
					s = 30;
				}

				else if ((synpred864_MySQL())) {
					s = 31;
				}

				else if ((true)) {
					s = 32;
				}

				input.seek(index435_7);
				if (s >= 0)
					return s;
				break;
			case 7:
				int LA435_8 = input.LA(1);

				int index435_8 = input.index();
				input.rewind();
				s = -1;
				if ((synpred856_MySQL())) {
					s = 27;
				}

				else if ((synpred858_MySQL())) {
					s = 28;
				}

				else if ((synpred859_MySQL())) {
					s = 29;
				}

				else if ((synpred862_MySQL())) {
					s = 30;
				}

				else if ((synpred864_MySQL())) {
					s = 31;
				}

				else if ((true)) {
					s = 32;
				}

				input.seek(index435_8);
				if (s >= 0)
					return s;
				break;
			case 8:
				int LA435_9 = input.LA(1);

				int index435_9 = input.index();
				input.rewind();
				s = -1;
				if ((synpred856_MySQL())) {
					s = 27;
				}

				else if ((synpred858_MySQL())) {
					s = 28;
				}

				else if ((synpred859_MySQL())) {
					s = 29;
				}

				else if ((synpred862_MySQL())) {
					s = 30;
				}

				else if ((synpred864_MySQL())) {
					s = 31;
				}

				else if ((true)) {
					s = 32;
				}

				input.seek(index435_9);
				if (s >= 0)
					return s;
				break;
			case 9:
				int LA435_10 = input.LA(1);

				int index435_10 = input.index();
				input.rewind();
				s = -1;
				if ((synpred856_MySQL())) {
					s = 27;
				}

				else if ((synpred858_MySQL())) {
					s = 28;
				}

				else if ((synpred859_MySQL())) {
					s = 29;
				}

				else if ((synpred862_MySQL())) {
					s = 30;
				}

				else if ((synpred864_MySQL())) {
					s = 31;
				}

				else if ((true)) {
					s = 32;
				}

				input.seek(index435_10);
				if (s >= 0)
					return s;
				break;
			case 10:
				int LA435_11 = input.LA(1);

				int index435_11 = input.index();
				input.rewind();
				s = -1;
				if ((synpred856_MySQL())) {
					s = 27;
				}

				else if ((synpred858_MySQL())) {
					s = 28;
				}

				else if ((synpred859_MySQL())) {
					s = 29;
				}

				else if ((synpred862_MySQL())) {
					s = 30;
				}

				else if ((synpred864_MySQL())) {
					s = 31;
				}

				else if ((true)) {
					s = 32;
				}

				input.seek(index435_11);
				if (s >= 0)
					return s;
				break;
			case 11:
				int LA435_12 = input.LA(1);

				int index435_12 = input.index();
				input.rewind();
				s = -1;
				if ((synpred856_MySQL())) {
					s = 27;
				}

				else if ((synpred858_MySQL())) {
					s = 28;
				}

				else if ((synpred859_MySQL())) {
					s = 29;
				}

				else if ((synpred862_MySQL())) {
					s = 30;
				}

				else if ((synpred864_MySQL())) {
					s = 31;
				}

				else if ((true)) {
					s = 32;
				}

				input.seek(index435_12);
				if (s >= 0)
					return s;
				break;
			case 12:
				int LA435_13 = input.LA(1);

				int index435_13 = input.index();
				input.rewind();
				s = -1;
				if ((synpred856_MySQL())) {
					s = 27;
				}

				else if ((synpred858_MySQL())) {
					s = 28;
				}

				else if ((synpred859_MySQL())) {
					s = 29;
				}

				else if ((synpred862_MySQL())) {
					s = 30;
				}

				else if ((synpred864_MySQL())) {
					s = 31;
				}

				else if ((true)) {
					s = 32;
				}

				input.seek(index435_13);
				if (s >= 0)
					return s;
				break;
			case 13:
				int LA435_14 = input.LA(1);

				int index435_14 = input.index();
				input.rewind();
				s = -1;
				if ((synpred856_MySQL())) {
					s = 27;
				}

				else if ((synpred858_MySQL())) {
					s = 28;
				}

				else if ((synpred859_MySQL())) {
					s = 29;
				}

				else if ((synpred862_MySQL())) {
					s = 30;
				}

				else if ((synpred864_MySQL())) {
					s = 31;
				}

				else if ((true)) {
					s = 32;
				}

				input.seek(index435_14);
				if (s >= 0)
					return s;
				break;
			case 14:
				int LA435_15 = input.LA(1);

				int index435_15 = input.index();
				input.rewind();
				s = -1;
				if ((synpred856_MySQL())) {
					s = 27;
				}

				else if ((synpred858_MySQL())) {
					s = 28;
				}

				else if ((synpred859_MySQL())) {
					s = 29;
				}

				else if ((synpred862_MySQL())) {
					s = 30;
				}

				else if ((synpred864_MySQL())) {
					s = 31;
				}

				else if ((true)) {
					s = 32;
				}

				input.seek(index435_15);
				if (s >= 0)
					return s;
				break;
			case 15:
				int LA435_16 = input.LA(1);

				int index435_16 = input.index();
				input.rewind();
				s = -1;
				if ((synpred856_MySQL())) {
					s = 27;
				}

				else if ((synpred858_MySQL())) {
					s = 28;
				}

				else if ((synpred859_MySQL())) {
					s = 29;
				}

				else if ((synpred862_MySQL())) {
					s = 30;
				}

				else if ((synpred864_MySQL())) {
					s = 31;
				}

				else if ((true)) {
					s = 32;
				}

				input.seek(index435_16);
				if (s >= 0)
					return s;
				break;
			case 16:
				int LA435_17 = input.LA(1);

				int index435_17 = input.index();
				input.rewind();
				s = -1;
				if ((synpred856_MySQL())) {
					s = 27;
				}

				else if ((synpred858_MySQL())) {
					s = 28;
				}

				else if ((synpred859_MySQL())) {
					s = 29;
				}

				else if ((synpred862_MySQL())) {
					s = 30;
				}

				else if ((synpred864_MySQL())) {
					s = 31;
				}

				else if ((true)) {
					s = 32;
				}

				input.seek(index435_17);
				if (s >= 0)
					return s;
				break;
			case 17:
				int LA435_18 = input.LA(1);

				int index435_18 = input.index();
				input.rewind();
				s = -1;
				if ((synpred856_MySQL())) {
					s = 27;
				}

				else if ((synpred858_MySQL())) {
					s = 28;
				}

				else if ((synpred859_MySQL())) {
					s = 29;
				}

				else if ((synpred862_MySQL())) {
					s = 30;
				}

				else if ((synpred864_MySQL())) {
					s = 31;
				}

				else if ((true)) {
					s = 32;
				}

				input.seek(index435_18);
				if (s >= 0)
					return s;
				break;
			case 18:
				int LA435_19 = input.LA(1);

				int index435_19 = input.index();
				input.rewind();
				s = -1;
				if ((synpred856_MySQL())) {
					s = 27;
				}

				else if ((synpred858_MySQL())) {
					s = 28;
				}

				else if ((synpred859_MySQL())) {
					s = 29;
				}

				else if ((synpred862_MySQL())) {
					s = 30;
				}

				else if ((synpred864_MySQL())) {
					s = 31;
				}

				else if ((true)) {
					s = 32;
				}

				input.seek(index435_19);
				if (s >= 0)
					return s;
				break;
			case 19:
				int LA435_20 = input.LA(1);

				int index435_20 = input.index();
				input.rewind();
				s = -1;
				if ((synpred856_MySQL())) {
					s = 27;
				}

				else if ((synpred858_MySQL())) {
					s = 28;
				}

				else if ((synpred859_MySQL())) {
					s = 29;
				}

				else if ((synpred862_MySQL())) {
					s = 30;
				}

				else if ((synpred864_MySQL())) {
					s = 31;
				}

				else if ((true)) {
					s = 32;
				}

				input.seek(index435_20);
				if (s >= 0)
					return s;
				break;
			case 20:
				int LA435_21 = input.LA(1);

				int index435_21 = input.index();
				input.rewind();
				s = -1;
				if ((synpred856_MySQL())) {
					s = 27;
				}

				else if ((synpred858_MySQL())) {
					s = 28;
				}

				else if ((synpred859_MySQL())) {
					s = 29;
				}

				else if ((synpred862_MySQL())) {
					s = 30;
				}

				else if ((synpred864_MySQL())) {
					s = 31;
				}

				else if ((true)) {
					s = 32;
				}

				input.seek(index435_21);
				if (s >= 0)
					return s;
				break;
			case 21:
				int LA435_22 = input.LA(1);

				int index435_22 = input.index();
				input.rewind();
				s = -1;
				if ((synpred856_MySQL())) {
					s = 27;
				}

				else if ((synpred858_MySQL())) {
					s = 28;
				}

				else if ((synpred859_MySQL())) {
					s = 29;
				}

				else if ((synpred862_MySQL())) {
					s = 30;
				}

				else if ((synpred864_MySQL())) {
					s = 31;
				}

				else if ((true)) {
					s = 32;
				}

				input.seek(index435_22);
				if (s >= 0)
					return s;
				break;
			case 22:
				int LA435_23 = input.LA(1);

				int index435_23 = input.index();
				input.rewind();
				s = -1;
				if ((synpred856_MySQL())) {
					s = 27;
				}

				else if ((synpred858_MySQL())) {
					s = 28;
				}

				else if ((synpred859_MySQL())) {
					s = 29;
				}

				else if ((synpred862_MySQL())) {
					s = 30;
				}

				else if ((synpred864_MySQL())) {
					s = 31;
				}

				else if ((true)) {
					s = 32;
				}

				input.seek(index435_23);
				if (s >= 0)
					return s;
				break;
			case 23:
				int LA435_24 = input.LA(1);

				int index435_24 = input.index();
				input.rewind();
				s = -1;
				if ((synpred856_MySQL())) {
					s = 27;
				}

				else if ((synpred858_MySQL())) {
					s = 28;
				}

				else if ((synpred859_MySQL())) {
					s = 29;
				}

				else if ((synpred862_MySQL())) {
					s = 30;
				}

				else if ((synpred864_MySQL())) {
					s = 31;
				}

				else if ((true)) {
					s = 32;
				}

				input.seek(index435_24);
				if (s >= 0)
					return s;
				break;
			case 24:
				int LA435_25 = input.LA(1);

				int index435_25 = input.index();
				input.rewind();
				s = -1;
				if ((synpred856_MySQL())) {
					s = 27;
				}

				else if ((synpred858_MySQL())) {
					s = 28;
				}

				else if ((synpred859_MySQL())) {
					s = 29;
				}

				else if ((synpred862_MySQL())) {
					s = 30;
				}

				else if ((synpred864_MySQL())) {
					s = 31;
				}

				else if ((true)) {
					s = 32;
				}

				input.seek(index435_25);
				if (s >= 0)
					return s;
				break;
			case 25:
				int LA435_26 = input.LA(1);

				int index435_26 = input.index();
				input.rewind();
				s = -1;
				if ((synpred856_MySQL())) {
					s = 27;
				}

				else if ((synpred858_MySQL())) {
					s = 28;
				}

				else if ((synpred859_MySQL())) {
					s = 29;
				}

				else if ((synpred862_MySQL())) {
					s = 30;
				}

				else if ((synpred864_MySQL())) {
					s = 31;
				}

				else if ((true)) {
					s = 32;
				}

				input.seek(index435_26);
				if (s >= 0)
					return s;
				break;
			}
			if (state.backtracking > 0) {
				state.failed = true;
				return -1;
			}
			NoViableAltException nvae = new NoViableAltException(
					getDescription(), 435, _s, input);
			error(nvae);
			throw nvae;
		}
	}

	static final String DFA449_eotS = "\15\uffff";
	static final String DFA449_eofS = "\15\uffff";
	static final String DFA449_minS = "\1\67\4\uffff\1\37\7\uffff";
	static final String DFA449_maxS = "\1\u01ea\4\uffff\1\u01ea\7\uffff";
	static final String DFA449_acceptS = "\1\uffff\1\1\1\2\1\3\1\4\1\uffff\1\6\1\10\1\11\1\12\1\13\1\5\1"
			+ "\7";
	static final String DFA449_specialS = "\15\uffff}>";
	static final String[] DFA449_transitionS = {
			"\1\1\7\uffff\1\5\10\uffff\1\3\5\uffff\1\3\1\uffff\1\3\17\uffff"
					+ "\1\3\1\uffff\1\7\7\uffff\1\1\3\uffff\1\1\16\uffff\3\3\2\uffff"
					+ "\2\3\17\uffff\1\10\25\uffff\1\3\37\uffff\1\3\4\uffff\1\3\14"
					+ "\uffff\1\3\4\uffff\1\3\15\uffff\1\3\47\uffff\3\3\1\uffff\3\3"
					+ "\15\uffff\7\1\u00a1\3\1\2\16\uffff\1\4\1\6\1\3\1\11\5\uffff"
					+ "\1\12",
			"",
			"",
			"",
			"",
			"\1\14\27\uffff\1\13\7\uffff\1\13\10\uffff\1\13\5\uffff\1\13"
					+ "\1\uffff\1\13\17\uffff\3\13\7\uffff\1\13\3\uffff\1\13\16\uffff"
					+ "\3\13\2\uffff\2\13\3\uffff\1\13\13\uffff\1\13\25\uffff\1\13"
					+ "\37\uffff\1\13\4\uffff\1\13\14\uffff\1\13\4\uffff\1\13\15\uffff"
					+ "\1\13\47\uffff\3\13\1\uffff\3\13\15\uffff\u00a9\13\15\uffff"
					+ "\5\13\5\uffff\1\13", "", "", "", "", "", "", "" };

	static final short[] DFA449_eot = DFA.unpackEncodedString(DFA449_eotS);
	static final short[] DFA449_eof = DFA.unpackEncodedString(DFA449_eofS);
	static final char[] DFA449_min = DFA
			.unpackEncodedStringToUnsignedChars(DFA449_minS);
	static final char[] DFA449_max = DFA
			.unpackEncodedStringToUnsignedChars(DFA449_maxS);
	static final short[] DFA449_accept = DFA
			.unpackEncodedString(DFA449_acceptS);
	static final short[] DFA449_special = DFA
			.unpackEncodedString(DFA449_specialS);
	static final short[][] DFA449_transition;

	static {
		int numStates = DFA449_transitionS.length;
		DFA449_transition = new short[numStates][];
		for (int i = 0; i < numStates; i++) {
			DFA449_transition[i] = DFA
					.unpackEncodedString(DFA449_transitionS[i]);
		}
	}

	class DFA449 extends DFA {

		public DFA449(BaseRecognizer recognizer) {
			this.recognizer = recognizer;
			this.decisionNumber = 449;
			this.eot = DFA449_eot;
			this.eof = DFA449_eof;
			this.min = DFA449_min;
			this.max = DFA449_max;
			this.accept = DFA449_accept;
			this.special = DFA449_special;
			this.transition = DFA449_transition;
		}

		public String getDescription() {
			return "930:1: simple_expr : ( literal_value | column_spec | function_call | USER_VAR | expression_list | ( ROW_SYM expression_list ) | subquery | EXISTS subquery | match_against_statement | case_when_statement | interval_expr );";
		}
	}

	static final String DFA454_eotS = "\13\uffff";
	static final String DFA454_eofS = "\13\uffff";
	static final String DFA454_minS = "\1\110\6\uffff\1\0\3\uffff";
	static final String DFA454_maxS = "\1\u01e3\6\uffff\1\0\3\uffff";
	static final String DFA454_acceptS = "\1\uffff\1\1\4\uffff\1\2\1\uffff\1\5\1\3\1\4";
	static final String DFA454_specialS = "\7\uffff\1\0\3\uffff}>";
	static final String[] DFA454_transitionS = {
			"\1\1\5\uffff\1\1\1\uffff\1\1\17\uffff\1\1\34\uffff\3\1\2\uffff"
					+ "\2\1\45\uffff\1\1\37\uffff\1\7\4\uffff\1\1\14\uffff\1\1\4\uffff"
					+ "\1\1\15\uffff\1\1\47\uffff\3\1\1\uffff\3\1\24\uffff\u0091\1"
					+ "\20\10\21\uffff\1\6", "", "", "", "", "", "",
			"\1\uffff", "", "", "" };

	static final short[] DFA454_eot = DFA.unpackEncodedString(DFA454_eotS);
	static final short[] DFA454_eof = DFA.unpackEncodedString(DFA454_eofS);
	static final char[] DFA454_min = DFA
			.unpackEncodedStringToUnsignedChars(DFA454_minS);
	static final char[] DFA454_max = DFA
			.unpackEncodedStringToUnsignedChars(DFA454_maxS);
	static final short[] DFA454_accept = DFA
			.unpackEncodedString(DFA454_acceptS);
	static final short[] DFA454_special = DFA
			.unpackEncodedString(DFA454_specialS);
	static final short[][] DFA454_transition;

	static {
		int numStates = DFA454_transitionS.length;
		DFA454_transition = new short[numStates][];
		for (int i = 0; i < numStates; i++) {
			DFA454_transition[i] = DFA
					.unpackEncodedString(DFA454_transitionS[i]);
		}
	}

	class DFA454 extends DFA {

		public DFA454(BaseRecognizer recognizer) {
			this.recognizer = recognizer;
			this.decisionNumber = 454;
			this.eot = DFA454_eot;
			this.eof = DFA454_eof;
			this.min = DFA454_min;
			this.max = DFA454_max;
			this.accept = DFA454_accept;
			this.special = DFA454_special;
			this.transition = DFA454_transition;
		}

		public String getDescription() {
			return "947:1: function_call : ( ( functionList ( LPAREN ( expression ( COMMA expression )* )? RPAREN )? ) -> ^( functionList ( expression )* ) | ( CAST_SYM LPAREN expression AS_SYM cast_data_type RPAREN ) -> ^( CAST_SYM expression cast_data_type ) | ( CONVERT_SYM LPAREN expression COMMA cast_data_type RPAREN ) -> ^( CONVERT_SYM expression cast_data_type ) | ( CONVERT_SYM LPAREN expression USING_SYM transcoding_name RPAREN ) -> ^( CONVERT_SYM expression transcoding_name ) | ( group_functions LPAREN ( ASTERISK | ALL | DISTINCT )? bit_expr RPAREN ) );";
		}

		public int specialStateTransition(int s, IntStream _input)
				throws NoViableAltException {
			TokenStream input = (TokenStream) _input;
			int _s = s;
			switch (s) {
			case 0:
				int LA454_7 = input.LA(1);

				int index454_7 = input.index();
				input.rewind();
				s = -1;
				if ((synpred897_MySQL())) {
					s = 9;
				}

				else if ((synpred898_MySQL())) {
					s = 10;
				}

				input.seek(index454_7);
				if (s >= 0)
					return s;
				break;
			}
			if (state.backtracking > 0) {
				state.failed = true;
				return -1;
			}
			NoViableAltException nvae = new NoViableAltException(
					getDescription(), 454, _s, input);
			error(nvae);
			throw nvae;
		}
	}

	static final String DFA468_eotS = "\23\uffff";
	static final String DFA468_eofS = "\1\3\22\uffff";
	static final String DFA468_minS = "\1\34\1\0\21\uffff";
	static final String DFA468_maxS = "\1\u015b\1\0\21\uffff";
	static final String DFA468_acceptS = "\2\uffff\1\1\1\2\17\uffff";
	static final String DFA468_specialS = "\1\uffff\1\0\21\uffff}>";
	static final String[] DFA468_transitionS = {
			"\2\3\15\uffff\1\3\1\uffff\1\3\3\uffff\2\3\1\uffff\2\3\2\uffff"
					+ "\2\3\2\uffff\1\3\3\uffff\1\3\6\uffff\1\2\2\uffff\1\1\6\uffff"
					+ "\1\3\136\uffff\1\3\u00aa\uffff\1\3", "\1\uffff", "", "",
			"", "", "", "", "", "", "", "", "", "", "", "", "", "", "" };

	static final short[] DFA468_eot = DFA.unpackEncodedString(DFA468_eotS);
	static final short[] DFA468_eof = DFA.unpackEncodedString(DFA468_eofS);
	static final char[] DFA468_min = DFA
			.unpackEncodedStringToUnsignedChars(DFA468_minS);
	static final char[] DFA468_max = DFA
			.unpackEncodedStringToUnsignedChars(DFA468_maxS);
	static final short[] DFA468_accept = DFA
			.unpackEncodedString(DFA468_acceptS);
	static final short[] DFA468_special = DFA
			.unpackEncodedString(DFA468_specialS);
	static final short[][] DFA468_transition;

	static {
		int numStates = DFA468_transitionS.length;
		DFA468_transition = new short[numStates][];
		for (int i = 0; i < numStates; i++) {
			DFA468_transition[i] = DFA
					.unpackEncodedString(DFA468_transitionS[i]);
		}
	}

	class DFA468 extends DFA {

		public DFA468(BaseRecognizer recognizer) {
			this.recognizer = recognizer;
			this.decisionNumber = 468;
			this.eot = DFA468_eot;
			this.eof = DFA468_eof;
			this.min = DFA468_min;
			this.max = DFA468_max;
			this.accept = DFA468_accept;
			this.special = DFA468_special;
			this.transition = DFA468_transition;
		}

		public String getDescription() {
			return "998:63: ( join_condition )?";
		}

		public int specialStateTransition(int s, IntStream _input)
				throws NoViableAltException {
			TokenStream input = (TokenStream) _input;
			int _s = s;
			switch (s) {
			case 0:
				int LA468_1 = input.LA(1);

				int index468_1 = input.index();
				input.rewind();
				s = -1;
				if ((synpred916_MySQL())) {
					s = 2;
				}

				else if ((true)) {
					s = 3;
				}

				input.seek(index468_1);
				if (s >= 0)
					return s;
				break;
			}
			if (state.backtracking > 0) {
				state.failed = true;
				return -1;
			}
			NoViableAltException nvae = new NoViableAltException(
					getDescription(), 468, _s, input);
			error(nvae);
			throw nvae;
		}
	}

	static final String DFA470_eotS = "\26\uffff";
	static final String DFA470_eofS = "\1\2\25\uffff";
	static final String DFA470_minS = "\1\34\1\0\24\uffff";
	static final String DFA470_maxS = "\1\u01ed\1\0\24\uffff";
	static final String DFA470_acceptS = "\2\uffff\1\2\22\uffff\1\1";
	static final String DFA470_specialS = "\1\uffff\1\0\24\uffff}>";
	static final String[] DFA470_transitionS = {
			"\2\2\15\uffff\1\2\1\uffff\1\2\3\uffff\2\2\1\uffff\2\2\2\uffff"
					+ "\2\2\2\uffff\1\2\3\uffff\1\2\11\uffff\1\1\6\uffff\1\2\136\uffff"
					+ "\1\2\u00aa\uffff\1\2\u008f\uffff\3\2", "\1\uffff", "",
			"", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "",
			"", "" };

	static final short[] DFA470_eot = DFA.unpackEncodedString(DFA470_eotS);
	static final short[] DFA470_eof = DFA.unpackEncodedString(DFA470_eofS);
	static final char[] DFA470_min = DFA
			.unpackEncodedStringToUnsignedChars(DFA470_minS);
	static final char[] DFA470_max = DFA
			.unpackEncodedStringToUnsignedChars(DFA470_maxS);
	static final short[] DFA470_accept = DFA
			.unpackEncodedString(DFA470_acceptS);
	static final short[] DFA470_special = DFA
			.unpackEncodedString(DFA470_specialS);
	static final short[][] DFA470_transition;

	static {
		int numStates = DFA470_transitionS.length;
		DFA470_transition = new short[numStates][];
		for (int i = 0; i < numStates; i++) {
			DFA470_transition[i] = DFA
					.unpackEncodedString(DFA470_transitionS[i]);
		}
	}

	class DFA470 extends DFA {

		public DFA470(BaseRecognizer recognizer) {
			this.recognizer = recognizer;
			this.decisionNumber = 470;
			this.eot = DFA470_eot;
			this.eof = DFA470_eof;
			this.min = DFA470_min;
			this.max = DFA470_max;
			this.accept = DFA470_accept;
			this.special = DFA470_special;
			this.transition = DFA470_transition;
		}

		public String getDescription() {
			return "1001:45: ( ON expression )?";
		}

		public int specialStateTransition(int s, IntStream _input)
				throws NoViableAltException {
			TokenStream input = (TokenStream) _input;
			int _s = s;
			switch (s) {
			case 0:
				int LA470_1 = input.LA(1);

				int index470_1 = input.index();
				input.rewind();
				s = -1;
				if ((synpred918_MySQL())) {
					s = 21;
				}

				else if ((true)) {
					s = 2;
				}

				input.seek(index470_1);
				if (s >= 0)
					return s;
				break;
			}
			if (state.backtracking > 0) {
				state.failed = true;
				return -1;
			}
			NoViableAltException nvae = new NoViableAltException(
					getDescription(), 470, _s, input);
			error(nvae);
			throw nvae;
		}
	}

	static final String DFA474_eotS = "\27\uffff";
	static final String DFA474_eofS = "\1\3\26\uffff";
	static final String DFA474_minS = "\1\34\1\0\25\uffff";
	static final String DFA474_maxS = "\1\u01ed\1\0\25\uffff";
	static final String DFA474_acceptS = "\2\uffff\1\1\1\2\23\uffff";
	static final String DFA474_specialS = "\1\uffff\1\0\25\uffff}>";
	static final String[] DFA474_transitionS = {
			"\2\3\5\uffff\1\3\7\uffff\1\3\1\uffff\1\3\3\uffff\2\3\1\uffff"
					+ "\2\3\2\uffff\2\3\2\uffff\1\3\3\uffff\1\3\11\uffff\1\3\6\uffff"
					+ "\1\3\136\uffff\1\3\u00aa\uffff\1\1\15\uffff\1\2\u0081\uffff"
					+ "\3\3", "\1\uffff", "", "", "", "", "", "", "", "", "",
			"", "", "", "", "", "", "", "", "", "", "", "" };

	static final short[] DFA474_eot = DFA.unpackEncodedString(DFA474_eotS);
	static final short[] DFA474_eof = DFA.unpackEncodedString(DFA474_eofS);
	static final char[] DFA474_min = DFA
			.unpackEncodedStringToUnsignedChars(DFA474_minS);
	static final char[] DFA474_max = DFA
			.unpackEncodedStringToUnsignedChars(DFA474_maxS);
	static final short[] DFA474_accept = DFA
			.unpackEncodedString(DFA474_acceptS);
	static final short[] DFA474_special = DFA
			.unpackEncodedString(DFA474_specialS);
	static final short[][] DFA474_transition;

	static {
		int numStates = DFA474_transitionS.length;
		DFA474_transition = new short[numStates][];
		for (int i = 0; i < numStates; i++) {
			DFA474_transition[i] = DFA
					.unpackEncodedString(DFA474_transitionS[i]);
		}
	}

	class DFA474 extends DFA {

		public DFA474(BaseRecognizer recognizer) {
			this.recognizer = recognizer;
			this.decisionNumber = 474;
			this.eot = DFA474_eot;
			this.eof = DFA474_eof;
			this.min = DFA474_min;
			this.max = DFA474_max;
			this.accept = DFA474_accept;
			this.special = DFA474_special;
			this.transition = DFA474_transition;
		}

		public String getDescription() {
			return "1004:16: ( ( LEFT | RIGHT ) ( OUTER )? JOIN_SYM table_factor4 join_condition )?";
		}

		public int specialStateTransition(int s, IntStream _input)
				throws NoViableAltException {
			TokenStream input = (TokenStream) _input;
			int _s = s;
			switch (s) {
			case 0:
				int LA474_1 = input.LA(1);

				int index474_1 = input.index();
				input.rewind();
				s = -1;
				if ((synpred922_MySQL())) {
					s = 2;
				}

				else if ((true)) {
					s = 3;
				}

				input.seek(index474_1);
				if (s >= 0)
					return s;
				break;
			}
			if (state.backtracking > 0) {
				state.failed = true;
				return -1;
			}
			NoViableAltException nvae = new NoViableAltException(
					getDescription(), 474, _s, input);
			error(nvae);
			throw nvae;
		}
	}

	static final String DFA479_eotS = "\11\uffff";
	static final String DFA479_eofS = "\1\2\10\uffff";
	static final String DFA479_minS = "\1\34\1\77\1\uffff\1\u01d2\1\64\1\u01d2\1\0\1\64\1\uffff";
	static final String DFA479_maxS = "\1\u01f0\1\77\1\uffff\1\u01d2\1\100\1\u01d2\1\0\1\100\1\uffff";
	static final String DFA479_acceptS = "\2\uffff\1\2\5\uffff\1\1";
	static final String DFA479_specialS = "\6\uffff\1\0\2\uffff}>";
	static final String[] DFA479_transitionS = {
			"\2\2\5\uffff\1\2\7\uffff\1\2\1\uffff\1\2\3\uffff\2\2\1\uffff"
					+ "\2\2\2\uffff\2\2\2\uffff\1\2\3\uffff\1\2\4\uffff\1\2\1\uffff"
					+ "\1\2\2\uffff\1\2\6\uffff\1\2\136\uffff\1\1\27\uffff\1\2\4\uffff"
					+ "\1\2\103\uffff\1\2\111\uffff\1\2\15\uffff\1\2\150\uffff\1\2"
					+ "\30\uffff\3\2\2\uffff\1\2", "\1\3", "", "\1\4",
			"\1\5\13\uffff\1\6", "\1\7", "\1\uffff", "\1\5\13\uffff\1\6", "" };

	static final short[] DFA479_eot = DFA.unpackEncodedString(DFA479_eotS);
	static final short[] DFA479_eof = DFA.unpackEncodedString(DFA479_eofS);
	static final char[] DFA479_min = DFA
			.unpackEncodedStringToUnsignedChars(DFA479_minS);
	static final char[] DFA479_max = DFA
			.unpackEncodedStringToUnsignedChars(DFA479_maxS);
	static final short[] DFA479_accept = DFA
			.unpackEncodedString(DFA479_acceptS);
	static final short[] DFA479_special = DFA
			.unpackEncodedString(DFA479_specialS);
	static final short[][] DFA479_transition;

	static {
		int numStates = DFA479_transitionS.length;
		DFA479_transition = new short[numStates][];
		for (int i = 0; i < numStates; i++) {
			DFA479_transition[i] = DFA
					.unpackEncodedString(DFA479_transitionS[i]);
		}
	}

	class DFA479 extends DFA {

		public DFA479(BaseRecognizer recognizer) {
			this.recognizer = recognizer;
			this.decisionNumber = 479;
			this.eot = DFA479_eot;
			this.eof = DFA479_eof;
			this.min = DFA479_min;
			this.max = DFA479_max;
			this.accept = DFA479_accept;
			this.special = DFA479_special;
			this.transition = DFA479_transition;
		}

		public String getDescription() {
			return "1010:17: ( partition_clause )?";
		}

		public int specialStateTransition(int s, IntStream _input)
				throws NoViableAltException {
			TokenStream input = (TokenStream) _input;
			int _s = s;
			switch (s) {
			case 0:
				int LA479_6 = input.LA(1);

				int index479_6 = input.index();
				input.rewind();
				s = -1;
				if ((synpred927_MySQL())) {
					s = 8;
				}

				else if ((true)) {
					s = 2;
				}

				input.seek(index479_6);
				if (s >= 0)
					return s;
				break;
			}
			if (state.backtracking > 0) {
				state.failed = true;
				return -1;
			}
			NoViableAltException nvae = new NoViableAltException(
					getDescription(), 479, _s, input);
			error(nvae);
			throw nvae;
		}
	}

	public static final BitSet FOLLOW_SHIFT_LEFT_in_program110 = new BitSet(
			new long[] { 0x0000000008000000L });
	public static final BitSet FOLLOW_SHIFT_RIGHT_in_program113 = new BitSet(
			new long[] { 0x0000100080000000L, 0x0000000020040104L,
					0x2000000000000000L, 0x0000000000004040L });
	public static final BitSet FOLLOW_data_manipulation_statements_in_program123 = new BitSet(
			new long[] { 0x0000000010000002L });
	public static final BitSet FOLLOW_data_definition_statements_in_program127 = new BitSet(
			new long[] { 0x0000000010000002L });
	public static final BitSet FOLLOW_SEMI_in_program131 = new BitSet(
			new long[] { 0x0000100080000000L, 0x0000000020040104L,
					0x2000000000000000L, 0x0000000000004040L });
	public static final BitSet FOLLOW_data_manipulation_statements_in_program135 = new BitSet(
			new long[] { 0x0000000010000002L });
	public static final BitSet FOLLOW_data_definition_statements_in_program139 = new BitSet(
			new long[] { 0x0000000010000002L });
	public static final BitSet FOLLOW_SEMI_in_program146 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_select_statement_in_data_manipulation_statements162 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_delete_statements_in_data_manipulation_statements175 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_insert_statements_in_data_manipulation_statements188 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_update_statements_in_data_manipulation_statements201 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_create_table_statement_in_data_definition_statements222 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_alter_table_statement_in_data_definition_statements235 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_drop_table_statement_in_data_definition_statements248 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_create_view_statement_in_data_definition_statements263 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_alter_view_statement_in_data_definition_statements276 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_rename_table_statement_in_data_definition_statements282 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_drop_view_statement_in_data_definition_statements294 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_truncate_table_statement_in_data_definition_statements307 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_create_index_statement_in_data_definition_statements321 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_drop_index_statement_in_data_definition_statements329 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_select_expression_in_select_statement352 = new BitSet(
			new long[] { 0x0000000020000002L });
	public static final BitSet FOLLOW_UNION_SYM_in_select_statement372 = new BitSet(
			new long[] { 0x0000000080000000L });
	public static final BitSet FOLLOW_select_expression_in_select_statement376 = new BitSet(
			new long[] { 0x0000000020000002L });
	public static final BitSet FOLLOW_UNION_SYM_in_select_statement417 = new BitSet(
			new long[] { 0x0000000040000000L });
	public static final BitSet FOLLOW_ALL_in_select_statement419 = new BitSet(
			new long[] { 0x0000000080000000L });
	public static final BitSet FOLLOW_select_expression_in_select_statement423 = new BitSet(
			new long[] { 0x0000000020000002L });
	public static final BitSet FOLLOW_SELECT_in_select_expression462 = new BitSet(
			new long[] { 0xC08003FF40000000L, 0xE000440500014100L,
					0x000002000008008CL, 0x0000400108004200L,
					0xFFFFFC001DC00000L, 0xFFFFFFFFFFFFFFFFL,
					0xFFFFFFFFFFFFFFFFL, 0x0000041F0007FFFFL });
	public static final BitSet FOLLOW_ALL_in_select_expression470 = new BitSet(
			new long[] { 0xC08003FF40000000L, 0xE000440500014100L,
					0x000002000008008CL, 0x0000400108004200L,
					0xFFFFFC001DC00000L, 0xFFFFFFFFFFFFFFFFL,
					0xFFFFFFFFFFFFFFFFL, 0x0000041F0007FFFFL });
	public static final BitSet FOLLOW_DISTINCT_in_select_expression474 = new BitSet(
			new long[] { 0xC08003FF40000000L, 0xE000440500014100L,
					0x000002000008008CL, 0x0000400108004200L,
					0xFFFFFC001DC00000L, 0xFFFFFFFFFFFFFFFFL,
					0xFFFFFFFFFFFFFFFFL, 0x0000041F0007FFFFL });
	public static final BitSet FOLLOW_DISTINCTROW_in_select_expression478 = new BitSet(
			new long[] { 0xC08003FF40000000L, 0xE000440500014100L,
					0x000002000008008CL, 0x0000400108004200L,
					0xFFFFFC001DC00000L, 0xFFFFFFFFFFFFFFFFL,
					0xFFFFFFFFFFFFFFFFL, 0x0000041F0007FFFFL });
	public static final BitSet FOLLOW_HIGH_PRIORITY_in_select_expression486 = new BitSet(
			new long[] { 0xC08003FF40000000L, 0xE000440500014100L,
					0x000002000008008CL, 0x0000400108004200L,
					0xFFFFFC001DC00000L, 0xFFFFFFFFFFFFFFFFL,
					0xFFFFFFFFFFFFFFFFL, 0x0000041F0007FFFFL });
	public static final BitSet FOLLOW_STRAIGHT_JOIN_in_select_expression492 = new BitSet(
			new long[] { 0xC08003FF40000000L, 0xE000440500014100L,
					0x000002000008008CL, 0x0000400108004200L,
					0xFFFFFC001DC00000L, 0xFFFFFFFFFFFFFFFFL,
					0xFFFFFFFFFFFFFFFFL, 0x0000041F0007FFFFL });
	public static final BitSet FOLLOW_SQL_SMALL_RESULT_in_select_expression498 = new BitSet(
			new long[] { 0xC08003FF40000000L, 0xE000440500014100L,
					0x000002000008008CL, 0x0000400108004200L,
					0xFFFFFC001DC00000L, 0xFFFFFFFFFFFFFFFFL,
					0xFFFFFFFFFFFFFFFFL, 0x0000041F0007FFFFL });
	public static final BitSet FOLLOW_SQL_BIG_RESULT_in_select_expression503 = new BitSet(
			new long[] { 0xC08003FF40000000L, 0xE000440500014100L,
					0x000002000008008CL, 0x0000400108004200L,
					0xFFFFFC001DC00000L, 0xFFFFFFFFFFFFFFFFL,
					0xFFFFFFFFFFFFFFFFL, 0x0000041F0007FFFFL });
	public static final BitSet FOLLOW_SQL_BUFFER_RESULT_in_select_expression508 = new BitSet(
			new long[] { 0xC08003FF40000000L, 0xE000440500014100L,
					0x000002000008008CL, 0x0000400108004200L,
					0xFFFFFC001DC00000L, 0xFFFFFFFFFFFFFFFFL,
					0xFFFFFFFFFFFFFFFFL, 0x0000041F0007FFFFL });
	public static final BitSet FOLLOW_SQL_CACHE_SYM_in_select_expression514 = new BitSet(
			new long[] { 0xC08003FF40000000L, 0xE000440500014100L,
					0x000002000008008CL, 0x0000400108004200L,
					0xFFFFFC001DC00000L, 0xFFFFFFFFFFFFFFFFL,
					0xFFFFFFFFFFFFFFFFL, 0x0000041F0007FFFFL });
	public static final BitSet FOLLOW_SQL_NO_CACHE_SYM_in_select_expression518 = new BitSet(
			new long[] { 0xC08003FF40000000L, 0xE000440500014100L,
					0x000002000008008CL, 0x0000400108004200L,
					0xFFFFFC001DC00000L, 0xFFFFFFFFFFFFFFFFL,
					0xFFFFFFFFFFFFFFFFL, 0x0000041F0007FFFFL });
	public static final BitSet FOLLOW_SQL_CALC_FOUND_ROWS_in_select_expression523 = new BitSet(
			new long[] { 0xC08003FF40000000L, 0xE000440500014100L,
					0x000002000008008CL, 0x0000400108004200L,
					0xFFFFFC001DC00000L, 0xFFFFFFFFFFFFFFFFL,
					0xFFFFFFFFFFFFFFFFL, 0x0000041F0007FFFFL });
	public static final BitSet FOLLOW_select_list_in_select_expression529 = new BitSet(
			new long[] { 0x12002C0000000002L });
	public static final BitSet FOLLOW_FROM_in_select_expression539 = new BitSet(
			new long[] { 0x8000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000800000040000L });
	public static final BitSet FOLLOW_table_references_in_select_expression541 = new BitSet(
			new long[] { 0x1306280000000002L, 0x0000000000000000L,
					0x0001000000000000L });
	public static final BitSet FOLLOW_partition_clause_in_select_expression548 = new BitSet(
			new long[] { 0x1306280000000002L });
	public static final BitSet FOLLOW_where_clause_in_select_expression557 = new BitSet(
			new long[] { 0x1304280000000002L });
	public static final BitSet FOLLOW_groupby_clause_in_select_expression567 = new BitSet(
			new long[] { 0x1300280000000002L });
	public static final BitSet FOLLOW_having_clause_in_select_expression576 = new BitSet(
			new long[] { 0x1200280000000002L });
	public static final BitSet FOLLOW_orderby_clause_in_select_expression591 = new BitSet(
			new long[] { 0x1000280000000002L });
	public static final BitSet FOLLOW_limit_clause_in_select_expression599 = new BitSet(
			new long[] { 0x0000280000000002L });
	public static final BitSet FOLLOW_FOR_SYM_in_select_expression609 = new BitSet(
			new long[] { 0x0000100000000000L });
	public static final BitSet FOLLOW_UPDATE_in_select_expression611 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_LOCK_in_select_expression617 = new BitSet(
			new long[] { 0x0000400000000000L });
	public static final BitSet FOLLOW_IN_SYM_in_select_expression619 = new BitSet(
			new long[] { 0x0000800000000000L });
	public static final BitSet FOLLOW_SHARE_SYM_in_select_expression621 = new BitSet(
			new long[] { 0x0001000000000000L });
	public static final BitSet FOLLOW_MODE_SYM_in_select_expression623 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_WHERE_in_where_clause691 = new BitSet(
			new long[] { 0x8080000000000000L, 0xE000440700014100L,
					0x000002000008008CL, 0x0000400108004200L,
					0xFFFFFC001DC00000L, 0xFFFFFFFFFFFFFFFFL,
					0xFFFFFFFFFFFFFFFFL, 0x0000041F0007FFFFL });
	public static final BitSet FOLLOW_expression_in_where_clause693 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_GROUP_SYM_in_groupby_clause710 = new BitSet(
			new long[] { 0x0008000000000000L });
	public static final BitSet FOLLOW_BY_SYM_in_groupby_clause712 = new BitSet(
			new long[] { 0x8080000000000000L, 0xE000440500014100L,
					0x000002000008008CL, 0x0000400108004200L,
					0xFFFFFC001DC00000L, 0xFFFFFFFFFFFFFFFFL,
					0xFFFFFFFFFFFFFFFFL, 0x0000041F0007FFFFL });
	public static final BitSet FOLLOW_groupby_item_in_groupby_clause714 = new BitSet(
			new long[] { 0x0030000000000002L });
	public static final BitSet FOLLOW_COMMA_in_groupby_clause717 = new BitSet(
			new long[] { 0x8080000000000000L, 0xE000440500014100L,
					0x000002000008008CL, 0x0000400108004200L,
					0xFFFFFC001DC00000L, 0xFFFFFFFFFFFFFFFFL,
					0xFFFFFFFFFFFFFFFFL, 0x0000041F0007FFFFL });
	public static final BitSet FOLLOW_groupby_item_in_groupby_clause719 = new BitSet(
			new long[] { 0x0030000000000002L });
	public static final BitSet FOLLOW_WITH_in_groupby_clause724 = new BitSet(
			new long[] { 0x0040000000000000L });
	public static final BitSet FOLLOW_ROLLUP_SYM_in_groupby_clause726 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_column_spec_in_groupby_item744 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_INTEGER_NUM_in_groupby_item748 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_bit_expr_in_groupby_item752 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_HAVING_in_having_clause761 = new BitSet(
			new long[] { 0x8080000000000000L, 0xE000440700014100L,
					0x000002000008008CL, 0x0000400108004200L,
					0xFFFFFC001DC00000L, 0xFFFFFFFFFFFFFFFFL,
					0xFFFFFFFFFFFFFFFFL, 0x0000041F0007FFFFL });
	public static final BitSet FOLLOW_expression_in_having_clause763 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_ORDER_SYM_in_orderby_clause779 = new BitSet(
			new long[] { 0x0008000000000000L });
	public static final BitSet FOLLOW_BY_SYM_in_orderby_clause781 = new BitSet(
			new long[] { 0x8080000000000000L, 0xE000440500014100L,
					0x000002000008008CL, 0x0000400108004200L,
					0xFFFFFC001DC00000L, 0xFFFFFFFFFFFFFFFFL,
					0xFFFFFFFFFFFFFFFFL, 0x0000041F0007FFFFL });
	public static final BitSet FOLLOW_orderby_item_in_orderby_clause783 = new BitSet(
			new long[] { 0x0010000000000002L });
	public static final BitSet FOLLOW_COMMA_in_orderby_clause786 = new BitSet(
			new long[] { 0x8080000000000000L, 0xE000440500014100L,
					0x000002000008008CL, 0x0000400108004200L,
					0xFFFFFC001DC00000L, 0xFFFFFFFFFFFFFFFFL,
					0xFFFFFFFFFFFFFFFFL, 0x0000041F0007FFFFL });
	public static final BitSet FOLLOW_orderby_item_in_orderby_clause788 = new BitSet(
			new long[] { 0x0010000000000002L });
	public static final BitSet FOLLOW_groupby_item_in_orderby_item805 = new BitSet(
			new long[] { 0x0C00000000000002L });
	public static final BitSet FOLLOW_ASC_in_orderby_item808 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_DESC_in_orderby_item812 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_LIMIT_in_limit_clause826 = new BitSet(
			new long[] { 0x0080000000000000L });
	public static final BitSet FOLLOW_offset_in_limit_clause831 = new BitSet(
			new long[] { 0x0010000000000000L });
	public static final BitSet FOLLOW_COMMA_in_limit_clause833 = new BitSet(
			new long[] { 0x0080000000000000L });
	public static final BitSet FOLLOW_row_count_in_limit_clause837 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_row_count_in_limit_clause845 = new BitSet(
			new long[] { 0x2000000000000000L });
	public static final BitSet FOLLOW_OFFSET_SYM_in_limit_clause847 = new BitSet(
			new long[] { 0x0080000000000000L });
	public static final BitSet FOLLOW_offset_in_limit_clause849 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_INTEGER_NUM_in_offset873 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_INTEGER_NUM_in_row_count880 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_displayed_column_in_select_list893 = new BitSet(
			new long[] { 0x0010000000000002L });
	public static final BitSet FOLLOW_COMMA_in_select_list897 = new BitSet(
			new long[] { 0x8080000000000000L, 0xE000440500014100L,
					0x000002000008008CL, 0x0000400108004200L,
					0xFFFFFC001DC00000L, 0xFFFFFFFFFFFFFFFFL,
					0xFFFFFFFFFFFFFFFFL, 0x0000041F0007FFFFL });
	public static final BitSet FOLLOW_displayed_column_in_select_list899 = new BitSet(
			new long[] { 0x0010000000000002L });
	public static final BitSet FOLLOW_ASTERISK_in_select_list912 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_LPAREN_in_column_list929 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000040000L });
	public static final BitSet FOLLOW_column_spec_in_column_list931 = new BitSet(
			new long[] { 0x0010000000000000L, 0x0000000000000001L });
	public static final BitSet FOLLOW_COMMA_in_column_list934 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000040000L });
	public static final BitSet FOLLOW_column_spec_in_column_list936 = new BitSet(
			new long[] { 0x0010000000000000L, 0x0000000000000001L });
	public static final BitSet FOLLOW_RPAREN_in_column_list940 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_LPAREN_in_subquery958 = new BitSet(
			new long[] { 0x0000000080000000L });
	public static final BitSet FOLLOW_select_statement_in_subquery960 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000000001L });
	public static final BitSet FOLLOW_RPAREN_in_subquery962 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_schema_name_in_table_spec977 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000000002L });
	public static final BitSet FOLLOW_DOT_in_table_spec979 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000040000L });
	public static final BitSet FOLLOW_table_name_in_table_spec984 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_table_spec_in_displayed_column1000 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000000002L });
	public static final BitSet FOLLOW_DOT_in_displayed_column1002 = new BitSet(
			new long[] { 0x4000000000000000L });
	public static final BitSet FOLLOW_ASTERISK_in_displayed_column1004 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_column_spec_in_displayed_column1023 = new BitSet(
			new long[] { 0x0000000000000002L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000100L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000040000L });
	public static final BitSet FOLLOW_alias_in_displayed_column1027 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_bit_expr_in_displayed_column1050 = new BitSet(
			new long[] { 0x0000000000000002L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000100L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000040000L });
	public static final BitSet FOLLOW_alias_in_displayed_column1053 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_DELETE_SYM_in_delete_statements1078 = new BitSet(
			new long[] { 0x0000040000000000L, 0x0000000000000038L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000040000L });
	public static final BitSet FOLLOW_LOW_PRIORITY_in_delete_statements1081 = new BitSet(
			new long[] { 0x0000040000000000L, 0x0000000000000038L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000040000L });
	public static final BitSet FOLLOW_QUICK_in_delete_statements1086 = new BitSet(
			new long[] { 0x0000040000000000L, 0x0000000000000038L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000040000L });
	public static final BitSet FOLLOW_IGNORE_SYM_in_delete_statements1091 = new BitSet(
			new long[] { 0x0000040000000000L, 0x0000000000000038L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000040000L });
	public static final BitSet FOLLOW_delete_single_table_statement_in_delete_statements1098 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_delete_multiple_table_statement1_in_delete_statements1109 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_delete_multiple_table_statement2_in_delete_statements1120 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_FROM_in_delete_single_table_statement1133 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000040000L });
	public static final BitSet FOLLOW_table_spec_in_delete_single_table_statement1135 = new BitSet(
			new long[] { 0x1202000000000002L, 0x0000000000000000L,
					0x0001000000000000L });
	public static final BitSet FOLLOW_partition_clause_in_delete_single_table_statement1139 = new BitSet(
			new long[] { 0x1202000000000002L });
	public static final BitSet FOLLOW_where_clause_in_delete_single_table_statement1145 = new BitSet(
			new long[] { 0x1200000000000002L });
	public static final BitSet FOLLOW_orderby_clause_in_delete_single_table_statement1151 = new BitSet(
			new long[] { 0x1000000000000002L });
	public static final BitSet FOLLOW_limit_clause_in_delete_single_table_statement1157 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_table_spec_in_delete_multiple_table_statement11197 = new BitSet(
			new long[] { 0x0010040000000000L, 0x0000000000000040L });
	public static final BitSet FOLLOW_ALL_FIELDS_in_delete_multiple_table_statement11200 = new BitSet(
			new long[] { 0x0010040000000000L });
	public static final BitSet FOLLOW_COMMA_in_delete_multiple_table_statement11205 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000040000L });
	public static final BitSet FOLLOW_table_spec_in_delete_multiple_table_statement11207 = new BitSet(
			new long[] { 0x0010040000000000L, 0x0000000000000040L });
	public static final BitSet FOLLOW_ALL_FIELDS_in_delete_multiple_table_statement11210 = new BitSet(
			new long[] { 0x0010040000000000L });
	public static final BitSet FOLLOW_FROM_in_delete_multiple_table_statement11217 = new BitSet(
			new long[] { 0x8000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000800000040000L });
	public static final BitSet FOLLOW_table_references_in_delete_multiple_table_statement11219 = new BitSet(
			new long[] { 0x0002000000000002L });
	public static final BitSet FOLLOW_where_clause_in_delete_multiple_table_statement11223 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_FROM_in_delete_multiple_table_statement21235 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000040000L });
	public static final BitSet FOLLOW_table_spec_in_delete_multiple_table_statement21237 = new BitSet(
			new long[] { 0x0010000000000000L, 0x00000000000000C0L });
	public static final BitSet FOLLOW_ALL_FIELDS_in_delete_multiple_table_statement21240 = new BitSet(
			new long[] { 0x0010000000000000L, 0x0000000000000080L });
	public static final BitSet FOLLOW_COMMA_in_delete_multiple_table_statement21245 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000040000L });
	public static final BitSet FOLLOW_table_spec_in_delete_multiple_table_statement21247 = new BitSet(
			new long[] { 0x0010000000000000L, 0x00000000000000C0L });
	public static final BitSet FOLLOW_ALL_FIELDS_in_delete_multiple_table_statement21250 = new BitSet(
			new long[] { 0x0010000000000000L, 0x0000000000000080L });
	public static final BitSet FOLLOW_USING_SYM_in_delete_multiple_table_statement21257 = new BitSet(
			new long[] { 0x8000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000800000040000L });
	public static final BitSet FOLLOW_table_references_in_delete_multiple_table_statement21259 = new BitSet(
			new long[] { 0x0002000000000002L });
	public static final BitSet FOLLOW_where_clause_in_delete_multiple_table_statement21263 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_insert_statement1_in_insert_statements1278 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_insert_statement2_in_insert_statements1286 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_insert_statement3_in_insert_statements1294 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_INSERT_in_insert_header1306 = new BitSet(
			new long[] { 0x0000000400000000L, 0x0000000000000228L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000040000L });
	public static final BitSet FOLLOW_LOW_PRIORITY_in_insert_header1309 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000000220L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000040000L });
	public static final BitSet FOLLOW_HIGH_PRIORITY_in_insert_header1313 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000000220L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000040000L });
	public static final BitSet FOLLOW_IGNORE_SYM_in_insert_header1318 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000000200L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000040000L });
	public static final BitSet FOLLOW_INTO_in_insert_header1324 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000040000L });
	public static final BitSet FOLLOW_table_spec_in_insert_header1328 = new BitSet(
			new long[] { 0x0000000000000002L, 0x0000000000000000L,
					0x0001000000000000L });
	public static final BitSet FOLLOW_partition_clause_in_insert_header1333 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_ON_in_insert_subfix1359 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000000800L });
	public static final BitSet FOLLOW_DUPLICATE_SYM_in_insert_subfix1361 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000001000L });
	public static final BitSet FOLLOW_KEY_SYM_in_insert_subfix1363 = new BitSet(
			new long[] { 0x0000100000000000L });
	public static final BitSet FOLLOW_UPDATE_in_insert_subfix1365 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000040000L });
	public static final BitSet FOLLOW_column_spec_in_insert_subfix1367 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000002000L });
	public static final BitSet FOLLOW_EQ_SYM_in_insert_subfix1369 = new BitSet(
			new long[] { 0x8080000000000000L, 0xE000440700014100L,
					0x000002000008008CL, 0x0000400108004200L,
					0xFFFFFC001DC00000L, 0xFFFFFFFFFFFFFFFFL,
					0xFFFFFFFFFFFFFFFFL, 0x0000041F0007FFFFL });
	public static final BitSet FOLLOW_expression_in_insert_subfix1371 = new BitSet(
			new long[] { 0x0010000000000002L });
	public static final BitSet FOLLOW_COMMA_in_insert_subfix1374 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000040000L });
	public static final BitSet FOLLOW_column_spec_in_insert_subfix1376 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000002000L });
	public static final BitSet FOLLOW_EQ_SYM_in_insert_subfix1378 = new BitSet(
			new long[] { 0x8080000000000000L, 0xE000440700014100L,
					0x000002000008008CL, 0x0000400108004200L,
					0xFFFFFC001DC00000L, 0xFFFFFFFFFFFFFFFFL,
					0xFFFFFFFFFFFFFFFFL, 0x0000041F0007FFFFL });
	public static final BitSet FOLLOW_expression_in_insert_subfix1380 = new BitSet(
			new long[] { 0x0010000000000002L });
	public static final BitSet FOLLOW_insert_header_in_insert_statement11391 = new BitSet(
			new long[] { 0x8000000000000000L, 0x000000000000C000L });
	public static final BitSet FOLLOW_column_list_in_insert_statement11395 = new BitSet(
			new long[] { 0x8000000000000000L, 0x000000000000C000L });
	public static final BitSet FOLLOW_value_list_clause_in_insert_statement11401 = new BitSet(
			new long[] { 0x0000000000000002L, 0x0000000000000400L });
	public static final BitSet FOLLOW_insert_subfix_in_insert_statement11406 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_VALUES_in_value_list_clause1429 = new BitSet(
			new long[] { 0x8000000000000000L });
	public static final BitSet FOLLOW_VALUE_SYM_in_value_list_clause1433 = new BitSet(
			new long[] { 0x8000000000000000L });
	public static final BitSet FOLLOW_column_value_list_in_value_list_clause1436 = new BitSet(
			new long[] { 0x0010000000000002L });
	public static final BitSet FOLLOW_COMMA_in_value_list_clause1439 = new BitSet(
			new long[] { 0x8000000000000000L });
	public static final BitSet FOLLOW_column_value_list_in_value_list_clause1441 = new BitSet(
			new long[] { 0x0010000000000002L });
	public static final BitSet FOLLOW_LPAREN_in_column_value_list1458 = new BitSet(
			new long[] { 0x8080000000000000L, 0xE000440500014100L,
					0x000002000008008CL, 0x0000400108004200L,
					0xFFFFFC001DC00000L, 0xFFFFFFFFFFFFFFFFL,
					0xFFFFFFFFFFFFFFFFL, 0x0000041F0007FFFFL });
	public static final BitSet FOLLOW_bit_expr_in_column_value_list1462 = new BitSet(
			new long[] { 0x0010000000000000L, 0x0000000000000001L });
	public static final BitSet FOLLOW_DEFAULT_in_column_value_list1464 = new BitSet(
			new long[] { 0x0010000000000000L, 0x0000000000000001L });
	public static final BitSet FOLLOW_COMMA_in_column_value_list1468 = new BitSet(
			new long[] { 0x8080000000000000L, 0xE000440500014100L,
					0x000002000008008CL, 0x0000400108004200L,
					0xFFFFFC001DC00000L, 0xFFFFFFFFFFFFFFFFL,
					0xFFFFFFFFFFFFFFFFL, 0x0000041F0007FFFFL });
	public static final BitSet FOLLOW_bit_expr_in_column_value_list1472 = new BitSet(
			new long[] { 0x0010000000000000L, 0x0000000000000001L });
	public static final BitSet FOLLOW_DEFAULT_in_column_value_list1474 = new BitSet(
			new long[] { 0x0010000000000000L, 0x0000000000000001L });
	public static final BitSet FOLLOW_RPAREN_in_column_value_list1480 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_insert_header_in_insert_statement21489 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000020000L });
	public static final BitSet FOLLOW_set_columns_cluase_in_insert_statement21492 = new BitSet(
			new long[] { 0x0000000000000002L, 0x0000000000000400L });
	public static final BitSet FOLLOW_insert_subfix_in_insert_statement21497 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_SET_SYM_in_set_columns_cluase1516 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000040000L });
	public static final BitSet FOLLOW_set_column_cluase_in_set_columns_cluase1519 = new BitSet(
			new long[] { 0x0010000000000002L });
	public static final BitSet FOLLOW_COMMA_in_set_columns_cluase1523 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000040000L });
	public static final BitSet FOLLOW_set_column_cluase_in_set_columns_cluase1526 = new BitSet(
			new long[] { 0x0010000000000002L });
	public static final BitSet FOLLOW_column_spec_in_set_column_cluase1538 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000002000L });
	public static final BitSet FOLLOW_EQ_SYM_in_set_column_cluase1540 = new BitSet(
			new long[] { 0x8080000000000000L, 0xE000440700014100L,
					0x000002000008008CL, 0x0000400108004200L,
					0xFFFFFC001DC00000L, 0xFFFFFFFFFFFFFFFFL,
					0xFFFFFFFFFFFFFFFFL, 0x0000041F0007FFFFL });
	public static final BitSet FOLLOW_expression_in_set_column_cluase1548 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_DEFAULT_in_set_column_cluase1564 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_insert_header_in_insert_statement31586 = new BitSet(
			new long[] { 0x8000000080000000L });
	public static final BitSet FOLLOW_column_list_in_insert_statement31590 = new BitSet(
			new long[] { 0x0000000080000000L });
	public static final BitSet FOLLOW_select_expression_in_insert_statement31596 = new BitSet(
			new long[] { 0x0000000000000002L, 0x0000000000000400L });
	public static final BitSet FOLLOW_insert_subfix_in_insert_statement31601 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_single_table_update_statement_in_update_statements1629 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_multiple_table_update_statement_in_update_statements1637 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_UPDATE_in_single_table_update_statement1649 = new BitSet(
			new long[] { 0x8000000000000000L, 0x0000000000000028L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000800000040000L });
	public static final BitSet FOLLOW_LOW_PRIORITY_in_single_table_update_statement1652 = new BitSet(
			new long[] { 0x8000000000000000L, 0x0000000000000020L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000800000040000L });
	public static final BitSet FOLLOW_IGNORE_SYM_in_single_table_update_statement1657 = new BitSet(
			new long[] { 0x8000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000800000040000L });
	public static final BitSet FOLLOW_table_reference_in_single_table_update_statement1661 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000020000L });
	public static final BitSet FOLLOW_set_columns_cluase_in_single_table_update_statement1664 = new BitSet(
			new long[] { 0x1202000000000002L });
	public static final BitSet FOLLOW_where_clause_in_single_table_update_statement1668 = new BitSet(
			new long[] { 0x1200000000000002L });
	public static final BitSet FOLLOW_orderby_clause_in_single_table_update_statement1674 = new BitSet(
			new long[] { 0x1000000000000002L });
	public static final BitSet FOLLOW_limit_clause_in_single_table_update_statement1680 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_UPDATE_in_multiple_table_update_statement1715 = new BitSet(
			new long[] { 0x8000000000000000L, 0x0000000000000028L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000800000040000L });
	public static final BitSet FOLLOW_LOW_PRIORITY_in_multiple_table_update_statement1718 = new BitSet(
			new long[] { 0x8000000000000000L, 0x0000000000000020L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000800000040000L });
	public static final BitSet FOLLOW_IGNORE_SYM_in_multiple_table_update_statement1723 = new BitSet(
			new long[] { 0x8000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000800000040000L });
	public static final BitSet FOLLOW_table_references_in_multiple_table_update_statement1727 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000020000L });
	public static final BitSet FOLLOW_set_columns_cluase_in_multiple_table_update_statement1730 = new BitSet(
			new long[] { 0x0002000000000002L });
	public static final BitSet FOLLOW_where_clause_in_multiple_table_update_statement1734 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_CREATE_in_create_index_statement1760 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000780000L });
	public static final BitSet FOLLOW_UNIQUE_SYM_in_create_index_statement1763 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000400000L });
	public static final BitSet FOLLOW_FULLTEXT_SYM_in_create_index_statement1765 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000400000L });
	public static final BitSet FOLLOW_SPATIAL_SYM_in_create_index_statement1767 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000400000L });
	public static final BitSet FOLLOW_INDEX_SYM_in_create_index_statement1771 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000040000L });
	public static final BitSet FOLLOW_index_name_in_create_index_statement1773 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000000480L });
	public static final BitSet FOLLOW_index_type_in_create_index_statement1777 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000000400L });
	public static final BitSet FOLLOW_ON_in_create_index_statement1782 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000040000L });
	public static final BitSet FOLLOW_table_name_in_create_index_statement1784 = new BitSet(
			new long[] { 0x8000000000000000L });
	public static final BitSet FOLLOW_LPAREN_in_create_index_statement1786 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000040000L });
	public static final BitSet FOLLOW_index_column_name_in_create_index_statement1788 = new BitSet(
			new long[] { 0x0010000000000000L, 0x0000000000000001L });
	public static final BitSet FOLLOW_COMMA_in_create_index_statement1791 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000040000L });
	public static final BitSet FOLLOW_index_column_name_in_create_index_statement1793 = new BitSet(
			new long[] { 0x0010000000000000L, 0x0000000000000001L });
	public static final BitSet FOLLOW_RPAREN_in_create_index_statement1797 = new BitSet(
			new long[] { 0x0000200000000002L, 0x0000000000800000L });
	public static final BitSet FOLLOW_algorithm_option_in_create_index_statement1801 = new BitSet(
			new long[] { 0x0000200000000002L, 0x0000000000800000L });
	public static final BitSet FOLLOW_lock_option_in_create_index_statement1805 = new BitSet(
			new long[] { 0x0000200000000002L, 0x0000000000800000L });
	public static final BitSet FOLLOW_ALGORITHM_SYM_in_algorithm_option1817 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000003012000L });
	public static final BitSet FOLLOW_EQ_SYM_in_algorithm_option1820 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000003010000L });
	public static final BitSet FOLLOW_set_in_algorithm_option1824 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_LOCK_in_lock_option1838 = new BitSet(
			new long[] { 0x0000000000000000L, 0x000000001C012000L });
	public static final BitSet FOLLOW_EQ_SYM_in_lock_option1841 = new BitSet(
			new long[] { 0x0000000000000000L, 0x000000001C010000L });
	public static final BitSet FOLLOW_set_in_lock_option1845 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_DROP_in_drop_index_statement1863 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000400000L });
	public static final BitSet FOLLOW_INDEX_SYM_in_drop_index_statement1865 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000040000L });
	public static final BitSet FOLLOW_index_name_in_drop_index_statement1867 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000000400L });
	public static final BitSet FOLLOW_ON_in_drop_index_statement1869 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000040000L });
	public static final BitSet FOLLOW_table_name_in_drop_index_statement1871 = new BitSet(
			new long[] { 0x0000200000000002L, 0x0000000000800000L });
	public static final BitSet FOLLOW_algorithm_option_in_drop_index_statement1875 = new BitSet(
			new long[] { 0x0000200000000002L, 0x0000000000800000L });
	public static final BitSet FOLLOW_lock_option_in_drop_index_statement1879 = new BitSet(
			new long[] { 0x0000200000000002L, 0x0000000000800000L });
	public static final BitSet FOLLOW_create_table_statement1_in_create_table_statement1892 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_create_table_statement2_in_create_table_statement1901 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_create_table_statement3_in_create_table_statement1910 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_CREATE_in_create_table_statement11924 = new BitSet(
			new long[] { 0x0000000000000000L, 0x00000000C0000000L });
	public static final BitSet FOLLOW_TEMPORARY_in_create_table_statement11927 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000080000000L });
	public static final BitSet FOLLOW_TABLE_in_create_table_statement11931 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000100000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000040000L });
	public static final BitSet FOLLOW_IF_in_create_table_statement11934 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000200000000L });
	public static final BitSet FOLLOW_NOT_SYM_in_create_table_statement11936 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000400000000L });
	public static final BitSet FOLLOW_EXISTS_in_create_table_statement11938 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000040000L });
	public static final BitSet FOLLOW_table_name_in_create_table_statement11942 = new BitSet(
			new long[] { 0x8000000000000000L });
	public static final BitSet FOLLOW_LPAREN_in_create_table_statement11945 = new BitSet(
			new long[] { 0x0000000000000000L, 0x000000F000781000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000040000L });
	public static final BitSet FOLLOW_create_definition_in_create_table_statement11947 = new BitSet(
			new long[] { 0x0010000000000000L, 0x0000000000000001L });
	public static final BitSet FOLLOW_COMMA_in_create_table_statement11950 = new BitSet(
			new long[] { 0x0000000000000000L, 0x000000F000781000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000040000L });
	public static final BitSet FOLLOW_create_definition_in_create_table_statement11952 = new BitSet(
			new long[] { 0x0010000000000000L, 0x0000000000000001L });
	public static final BitSet FOLLOW_RPAREN_in_create_table_statement11956 = new BitSet(
			new long[] { 0x00000000A0000002L, 0x0000030000410000L,
					0x0001C7E6F8000030L });
	public static final BitSet FOLLOW_table_options_in_create_table_statement11960 = new BitSet(
			new long[] { 0x0000000080000002L, 0x0000000000000000L,
					0x0001000000000000L });
	public static final BitSet FOLLOW_partition_options_in_create_table_statement11966 = new BitSet(
			new long[] { 0x0000000080000002L });
	public static final BitSet FOLLOW_select_statement_in_create_table_statement11972 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_CREATE_in_create_table_statement22002 = new BitSet(
			new long[] { 0x0000000000000000L, 0x00000000C0000000L });
	public static final BitSet FOLLOW_TEMPORARY_in_create_table_statement22005 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000080000000L });
	public static final BitSet FOLLOW_TABLE_in_create_table_statement22009 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000100000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000040000L });
	public static final BitSet FOLLOW_IF_in_create_table_statement22012 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000200000000L });
	public static final BitSet FOLLOW_NOT_SYM_in_create_table_statement22014 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000400000000L });
	public static final BitSet FOLLOW_EXISTS_in_create_table_statement22016 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000040000L });
	public static final BitSet FOLLOW_table_name_in_create_table_statement22020 = new BitSet(
			new long[] { 0x00000000A0000000L, 0x0000030000410000L,
					0x0001C7E6F8000030L });
	public static final BitSet FOLLOW_table_options_in_create_table_statement22024 = new BitSet(
			new long[] { 0x0000000080000000L, 0x0000000000000000L,
					0x0001000000000000L });
	public static final BitSet FOLLOW_partition_options_in_create_table_statement22030 = new BitSet(
			new long[] { 0x0000000080000000L });
	public static final BitSet FOLLOW_select_statement_in_create_table_statement22035 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_CREATE_in_create_table_statement32053 = new BitSet(
			new long[] { 0x0000000000000000L, 0x00000000C0000000L });
	public static final BitSet FOLLOW_TEMPORARY_in_create_table_statement32056 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000080000000L });
	public static final BitSet FOLLOW_TABLE_in_create_table_statement32060 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000100000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000040000L });
	public static final BitSet FOLLOW_IF_in_create_table_statement32063 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000200000000L });
	public static final BitSet FOLLOW_NOT_SYM_in_create_table_statement32065 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000400000000L });
	public static final BitSet FOLLOW_EXISTS_in_create_table_statement32067 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000040000L });
	public static final BitSet FOLLOW_table_name_in_create_table_statement32071 = new BitSet(
			new long[] { 0x8000000000000000L, 0x0000000800000000L });
	public static final BitSet FOLLOW_LIKE_SYM_in_create_table_statement32077 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000040000L });
	public static final BitSet FOLLOW_table_name_in_create_table_statement32079 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_LPAREN_in_create_table_statement32086 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000800000000L });
	public static final BitSet FOLLOW_LIKE_SYM_in_create_table_statement32088 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000040000L });
	public static final BitSet FOLLOW_table_name_in_create_table_statement32090 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000000001L });
	public static final BitSet FOLLOW_RPAREN_in_create_table_statement32092 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_column_name_in_create_definition2122 = new BitSet(
			new long[] { 0x0000000000000000L, 0xFFF9800000020000L,
					0x000000000003FFCEL });
	public static final BitSet FOLLOW_column_definition_in_create_definition2124 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_CONSTRAINT_in_create_definition2145 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000002000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000040000L });
	public static final BitSet FOLLOW_constraint_symbol_name_in_create_definition2148 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000002000000000L });
	public static final BitSet FOLLOW_PRIMARY_SYM_in_create_definition2154 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000001000L });
	public static final BitSet FOLLOW_KEY_SYM_in_create_definition2156 = new BitSet(
			new long[] { 0x8000000000000000L, 0x0000000000000080L });
	public static final BitSet FOLLOW_index_type_in_create_definition2159 = new BitSet(
			new long[] { 0x8000000000000000L });
	public static final BitSet FOLLOW_LPAREN_in_create_definition2163 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000040000L });
	public static final BitSet FOLLOW_index_column_name_in_create_definition2165 = new BitSet(
			new long[] { 0x0010000000000000L, 0x0000000000000001L });
	public static final BitSet FOLLOW_COMMA_in_create_definition2168 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000040000L });
	public static final BitSet FOLLOW_index_column_name_in_create_definition2170 = new BitSet(
			new long[] { 0x0010000000000000L, 0x0000000000000001L });
	public static final BitSet FOLLOW_RPAREN_in_create_definition2174 = new BitSet(
			new long[] { 0x0020000000000002L, 0x0000020000000080L,
					0x0000002000000000L });
	public static final BitSet FOLLOW_index_option_in_create_definition2177 = new BitSet(
			new long[] { 0x0020000000000002L, 0x0000020000000080L,
					0x0000002000000000L });
	public static final BitSet FOLLOW_set_in_create_definition2191 = new BitSet(
			new long[] { 0x8000000000000000L, 0x0000000000000080L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000040000L });
	public static final BitSet FOLLOW_index_name_in_create_definition2198 = new BitSet(
			new long[] { 0x8000000000000000L, 0x0000000000000080L });
	public static final BitSet FOLLOW_index_type_in_create_definition2203 = new BitSet(
			new long[] { 0x8000000000000000L });
	public static final BitSet FOLLOW_LPAREN_in_create_definition2207 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000040000L });
	public static final BitSet FOLLOW_index_column_name_in_create_definition2209 = new BitSet(
			new long[] { 0x0010000000000000L, 0x0000000000000001L });
	public static final BitSet FOLLOW_COMMA_in_create_definition2212 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000040000L });
	public static final BitSet FOLLOW_index_column_name_in_create_definition2214 = new BitSet(
			new long[] { 0x0010000000000000L, 0x0000000000000001L });
	public static final BitSet FOLLOW_RPAREN_in_create_definition2218 = new BitSet(
			new long[] { 0x0020000000000002L, 0x0000020000000080L,
					0x0000002000000000L });
	public static final BitSet FOLLOW_index_option_in_create_definition2221 = new BitSet(
			new long[] { 0x0020000000000002L, 0x0000020000000080L,
					0x0000002000000000L });
	public static final BitSet FOLLOW_CONSTRAINT_in_create_definition2236 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000080000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000040000L });
	public static final BitSet FOLLOW_constraint_symbol_name_in_create_definition2239 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000080000L });
	public static final BitSet FOLLOW_UNIQUE_SYM_in_create_definition2245 = new BitSet(
			new long[] { 0x8000000000000000L, 0x0000000000401080L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000040000L });
	public static final BitSet FOLLOW_set_in_create_definition2247 = new BitSet(
			new long[] { 0x8000000000000000L, 0x0000000000000080L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000040000L });
	public static final BitSet FOLLOW_index_name_in_create_definition2255 = new BitSet(
			new long[] { 0x8000000000000000L, 0x0000000000000080L });
	public static final BitSet FOLLOW_index_type_in_create_definition2260 = new BitSet(
			new long[] { 0x8000000000000000L });
	public static final BitSet FOLLOW_LPAREN_in_create_definition2264 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000040000L });
	public static final BitSet FOLLOW_index_column_name_in_create_definition2266 = new BitSet(
			new long[] { 0x0010000000000000L, 0x0000000000000001L });
	public static final BitSet FOLLOW_COMMA_in_create_definition2269 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000040000L });
	public static final BitSet FOLLOW_index_column_name_in_create_definition2271 = new BitSet(
			new long[] { 0x0010000000000000L, 0x0000000000000001L });
	public static final BitSet FOLLOW_RPAREN_in_create_definition2275 = new BitSet(
			new long[] { 0x0020000000000002L, 0x0000020000000080L,
					0x0000002000000000L });
	public static final BitSet FOLLOW_index_option_in_create_definition2278 = new BitSet(
			new long[] { 0x0020000000000002L, 0x0000020000000080L,
					0x0000002000000000L });
	public static final BitSet FOLLOW_set_in_create_definition2291 = new BitSet(
			new long[] { 0x8000000000000000L, 0x0000000000401000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000040000L });
	public static final BitSet FOLLOW_set_in_create_definition2297 = new BitSet(
			new long[] { 0x8000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000040000L });
	public static final BitSet FOLLOW_index_name_in_create_definition2305 = new BitSet(
			new long[] { 0x8000000000000000L });
	public static final BitSet FOLLOW_LPAREN_in_create_definition2309 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000040000L });
	public static final BitSet FOLLOW_index_column_name_in_create_definition2311 = new BitSet(
			new long[] { 0x0010000000000000L, 0x0000000000000001L });
	public static final BitSet FOLLOW_COMMA_in_create_definition2314 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000040000L });
	public static final BitSet FOLLOW_index_column_name_in_create_definition2316 = new BitSet(
			new long[] { 0x0010000000000000L, 0x0000000000000001L });
	public static final BitSet FOLLOW_RPAREN_in_create_definition2320 = new BitSet(
			new long[] { 0x0020000000000002L, 0x0000020000000080L,
					0x0000002000000000L });
	public static final BitSet FOLLOW_index_option_in_create_definition2323 = new BitSet(
			new long[] { 0x0020000000000002L, 0x0000020000000080L,
					0x0000002000000000L });
	public static final BitSet FOLLOW_CONSTRAINT_in_create_definition2337 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000004000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000040000L });
	public static final BitSet FOLLOW_constraint_symbol_name_in_create_definition2340 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000004000000000L });
	public static final BitSet FOLLOW_FOREIGN_in_create_definition2346 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000001000L });
	public static final BitSet FOLLOW_KEY_SYM_in_create_definition2348 = new BitSet(
			new long[] { 0x8000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000040000L });
	public static final BitSet FOLLOW_index_name_in_create_definition2351 = new BitSet(
			new long[] { 0x8000000000000000L });
	public static final BitSet FOLLOW_LPAREN_in_create_definition2355 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000040000L });
	public static final BitSet FOLLOW_index_column_name_in_create_definition2357 = new BitSet(
			new long[] { 0x0010000000000000L, 0x0000000000000001L });
	public static final BitSet FOLLOW_COMMA_in_create_definition2360 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000040000L });
	public static final BitSet FOLLOW_index_column_name_in_create_definition2362 = new BitSet(
			new long[] { 0x0010000000000000L, 0x0000000000000001L });
	public static final BitSet FOLLOW_RPAREN_in_create_definition2366 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000000000L,
					0x0000000000040000L });
	public static final BitSet FOLLOW_reference_definition_in_create_definition2368 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_CHECK_SYM_in_create_definition2379 = new BitSet(
			new long[] { 0x8000000000000000L });
	public static final BitSet FOLLOW_LPAREN_in_create_definition2381 = new BitSet(
			new long[] { 0x8080000000000000L, 0xE000440700014100L,
					0x000002000008008CL, 0x0000400108004200L,
					0xFFFFFC001DC00000L, 0xFFFFFFFFFFFFFFFFL,
					0xFFFFFFFFFFFFFFFFL, 0x0000041F0007FFFFL });
	public static final BitSet FOLLOW_expression_in_create_definition2383 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000000001L });
	public static final BitSet FOLLOW_RPAREN_in_create_definition2385 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_column_data_type_header_in_column_definition2399 = new BitSet(
			new long[] { 0x0000000000000002L, 0x00000B2000080000L,
					0x0000000000040000L });
	public static final BitSet FOLLOW_AUTO_INCREMENT_in_column_definition2403 = new BitSet(
			new long[] { 0x0000000000000002L, 0x00000A2000080000L,
					0x0000000000040000L });
	public static final BitSet FOLLOW_UNIQUE_SYM_in_column_definition2410 = new BitSet(
			new long[] { 0x0000000000000002L, 0x00000A0000001000L,
					0x0000000000040000L });
	public static final BitSet FOLLOW_KEY_SYM_in_column_definition2413 = new BitSet(
			new long[] { 0x0000000000000002L, 0x00000A0000000000L,
					0x0000000000040000L });
	public static final BitSet FOLLOW_PRIMARY_SYM_in_column_definition2421 = new BitSet(
			new long[] { 0x0000000000000002L, 0x00000A0000001000L,
					0x0000000000040000L });
	public static final BitSet FOLLOW_KEY_SYM_in_column_definition2424 = new BitSet(
			new long[] { 0x0000000000000002L, 0x00000A0000000000L,
					0x0000000000040000L });
	public static final BitSet FOLLOW_COMMENT_SYM_in_column_definition2434 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000040000000000L });
	public static final BitSet FOLLOW_TEXT_STRING_in_column_definition2436 = new BitSet(
			new long[] { 0x0000000000000002L, 0x0000080000000000L,
					0x0000000000040000L });
	public static final BitSet FOLLOW_COLUMN_FORMAT_in_column_definition2442 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000300000010000L });
	public static final BitSet FOLLOW_FIXED_SYM_in_column_definition2445 = new BitSet(
			new long[] { 0x0000000000000002L, 0x0000000000000000L,
					0x0000000000040000L });
	public static final BitSet FOLLOW_DYNAMIC_SYM_in_column_definition2447 = new BitSet(
			new long[] { 0x0000000000000002L, 0x0000000000000000L,
					0x0000000000040000L });
	public static final BitSet FOLLOW_DEFAULT_in_column_definition2449 = new BitSet(
			new long[] { 0x0000000000000002L, 0x0000000000000000L,
					0x0000000000040000L });
	public static final BitSet FOLLOW_reference_definition_in_column_definition2456 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_NOT_SYM_in_null_or_notnull2471 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000400000000000L });
	public static final BitSet FOLLOW_NULL_SYM_in_null_or_notnull2473 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_NULL_SYM_in_null_or_notnull2478 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_BIT_SYM_in_column_data_type_header2492 = new BitSet(
			new long[] { 0x8000000000000002L, 0x0000400200010000L });
	public static final BitSet FOLLOW_LPAREN_in_column_data_type_header2494 = new BitSet(
			new long[] { 0x0080000000000000L });
	public static final BitSet FOLLOW_length_in_column_data_type_header2496 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000000001L });
	public static final BitSet FOLLOW_RPAREN_in_column_data_type_header2498 = new BitSet(
			new long[] { 0x0000000000000002L, 0x0000400200010000L });
	public static final BitSet FOLLOW_null_or_notnull_in_column_data_type_header2503 = new BitSet(
			new long[] { 0x0000000000000002L, 0x0000000000010000L });
	public static final BitSet FOLLOW_DEFAULT_in_column_data_type_header2508 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0001000000000000L });
	public static final BitSet FOLLOW_bit_literal_in_column_data_type_header2510 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_TINYINT_in_column_data_type_header2523 = new BitSet(
			new long[] { 0x8000000000000002L, 0x0006400200010000L });
	public static final BitSet FOLLOW_LPAREN_in_column_data_type_header2525 = new BitSet(
			new long[] { 0x0080000000000000L });
	public static final BitSet FOLLOW_length_in_column_data_type_header2527 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000000001L });
	public static final BitSet FOLLOW_RPAREN_in_column_data_type_header2529 = new BitSet(
			new long[] { 0x0000000000000002L, 0x0006400200010000L });
	public static final BitSet FOLLOW_UNSIGNED_SYM_in_column_data_type_header2534 = new BitSet(
			new long[] { 0x0000000000000002L, 0x0004400200010000L });
	public static final BitSet FOLLOW_ZEROFILL_in_column_data_type_header2539 = new BitSet(
			new long[] { 0x0000000000000002L, 0x0000400200010000L });
	public static final BitSet FOLLOW_null_or_notnull_in_column_data_type_header2544 = new BitSet(
			new long[] { 0x0000000000000002L, 0x0000000000010000L });
	public static final BitSet FOLLOW_DEFAULT_in_column_data_type_header2549 = new BitSet(
			new long[] { 0x0080000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x00001C0000000000L });
	public static final BitSet FOLLOW_number_literal_in_column_data_type_header2551 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_SMALLINT_in_column_data_type_header2564 = new BitSet(
			new long[] { 0x8000000000000002L, 0x0006400200010000L });
	public static final BitSet FOLLOW_LPAREN_in_column_data_type_header2566 = new BitSet(
			new long[] { 0x0080000000000000L });
	public static final BitSet FOLLOW_length_in_column_data_type_header2568 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000000001L });
	public static final BitSet FOLLOW_RPAREN_in_column_data_type_header2570 = new BitSet(
			new long[] { 0x0000000000000002L, 0x0006400200010000L });
	public static final BitSet FOLLOW_UNSIGNED_SYM_in_column_data_type_header2575 = new BitSet(
			new long[] { 0x0000000000000002L, 0x0004400200010000L });
	public static final BitSet FOLLOW_ZEROFILL_in_column_data_type_header2580 = new BitSet(
			new long[] { 0x0000000000000002L, 0x0000400200010000L });
	public static final BitSet FOLLOW_null_or_notnull_in_column_data_type_header2585 = new BitSet(
			new long[] { 0x0000000000000002L, 0x0000000000010000L });
	public static final BitSet FOLLOW_DEFAULT_in_column_data_type_header2590 = new BitSet(
			new long[] { 0x0080000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x00001C0000000000L });
	public static final BitSet FOLLOW_number_literal_in_column_data_type_header2592 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_MEDIUMINT_in_column_data_type_header2605 = new BitSet(
			new long[] { 0x8000000000000002L, 0x0006400200010000L });
	public static final BitSet FOLLOW_LPAREN_in_column_data_type_header2607 = new BitSet(
			new long[] { 0x0080000000000000L });
	public static final BitSet FOLLOW_length_in_column_data_type_header2609 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000000001L });
	public static final BitSet FOLLOW_RPAREN_in_column_data_type_header2611 = new BitSet(
			new long[] { 0x0000000000000002L, 0x0006400200010000L });
	public static final BitSet FOLLOW_UNSIGNED_SYM_in_column_data_type_header2616 = new BitSet(
			new long[] { 0x0000000000000002L, 0x0004400200010000L });
	public static final BitSet FOLLOW_ZEROFILL_in_column_data_type_header2621 = new BitSet(
			new long[] { 0x0000000000000002L, 0x0000400200010000L });
	public static final BitSet FOLLOW_null_or_notnull_in_column_data_type_header2626 = new BitSet(
			new long[] { 0x0000000000000002L, 0x0000000000010000L });
	public static final BitSet FOLLOW_DEFAULT_in_column_data_type_header2631 = new BitSet(
			new long[] { 0x0080000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x00001C0000000000L });
	public static final BitSet FOLLOW_number_literal_in_column_data_type_header2633 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_INT_SYM_in_column_data_type_header2646 = new BitSet(
			new long[] { 0x8000000000000002L, 0x0006400200010000L });
	public static final BitSet FOLLOW_LPAREN_in_column_data_type_header2648 = new BitSet(
			new long[] { 0x0080000000000000L });
	public static final BitSet FOLLOW_length_in_column_data_type_header2650 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000000001L });
	public static final BitSet FOLLOW_RPAREN_in_column_data_type_header2652 = new BitSet(
			new long[] { 0x0000000000000002L, 0x0006400200010000L });
	public static final BitSet FOLLOW_UNSIGNED_SYM_in_column_data_type_header2657 = new BitSet(
			new long[] { 0x0000000000000002L, 0x0004400200010000L });
	public static final BitSet FOLLOW_ZEROFILL_in_column_data_type_header2662 = new BitSet(
			new long[] { 0x0000000000000002L, 0x0000400200010000L });
	public static final BitSet FOLLOW_null_or_notnull_in_column_data_type_header2667 = new BitSet(
			new long[] { 0x0000000000000002L, 0x0000000000010000L });
	public static final BitSet FOLLOW_DEFAULT_in_column_data_type_header2672 = new BitSet(
			new long[] { 0x0080000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x00001C0000000000L });
	public static final BitSet FOLLOW_number_literal_in_column_data_type_header2674 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_INTEGER_SYM_in_column_data_type_header2687 = new BitSet(
			new long[] { 0x8000000000000002L, 0x0006400200010000L });
	public static final BitSet FOLLOW_LPAREN_in_column_data_type_header2689 = new BitSet(
			new long[] { 0x0080000000000000L });
	public static final BitSet FOLLOW_length_in_column_data_type_header2691 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000000001L });
	public static final BitSet FOLLOW_RPAREN_in_column_data_type_header2693 = new BitSet(
			new long[] { 0x0000000000000002L, 0x0006400200010000L });
	public static final BitSet FOLLOW_UNSIGNED_SYM_in_column_data_type_header2698 = new BitSet(
			new long[] { 0x0000000000000002L, 0x0004400200010000L });
	public static final BitSet FOLLOW_ZEROFILL_in_column_data_type_header2703 = new BitSet(
			new long[] { 0x0000000000000002L, 0x0000400200010000L });
	public static final BitSet FOLLOW_null_or_notnull_in_column_data_type_header2708 = new BitSet(
			new long[] { 0x0000000000000002L, 0x0000000000010000L });
	public static final BitSet FOLLOW_DEFAULT_in_column_data_type_header2713 = new BitSet(
			new long[] { 0x0080000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x00001C0000000000L });
	public static final BitSet FOLLOW_number_literal_in_column_data_type_header2715 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_BIGINT_in_column_data_type_header2728 = new BitSet(
			new long[] { 0x8000000000000002L, 0x0006400200010000L });
	public static final BitSet FOLLOW_LPAREN_in_column_data_type_header2730 = new BitSet(
			new long[] { 0x0080000000000000L });
	public static final BitSet FOLLOW_length_in_column_data_type_header2732 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000000001L });
	public static final BitSet FOLLOW_RPAREN_in_column_data_type_header2734 = new BitSet(
			new long[] { 0x0000000000000002L, 0x0006400200010000L });
	public static final BitSet FOLLOW_UNSIGNED_SYM_in_column_data_type_header2739 = new BitSet(
			new long[] { 0x0000000000000002L, 0x0004400200010000L });
	public static final BitSet FOLLOW_ZEROFILL_in_column_data_type_header2744 = new BitSet(
			new long[] { 0x0000000000000002L, 0x0000400200010000L });
	public static final BitSet FOLLOW_null_or_notnull_in_column_data_type_header2749 = new BitSet(
			new long[] { 0x0000000000000002L, 0x0000000000010000L });
	public static final BitSet FOLLOW_DEFAULT_in_column_data_type_header2754 = new BitSet(
			new long[] { 0x0080000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x00001C0000000000L });
	public static final BitSet FOLLOW_number_literal_in_column_data_type_header2756 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_REAL_in_column_data_type_header2769 = new BitSet(
			new long[] { 0x8000000000000002L, 0x0006400200010000L });
	public static final BitSet FOLLOW_LPAREN_in_column_data_type_header2771 = new BitSet(
			new long[] { 0x0080000000000000L });
	public static final BitSet FOLLOW_length_in_column_data_type_header2773 = new BitSet(
			new long[] { 0x0010000000000000L });
	public static final BitSet FOLLOW_COMMA_in_column_data_type_header2775 = new BitSet(
			new long[] { 0x0080000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x00001C0000000000L });
	public static final BitSet FOLLOW_number_literal_in_column_data_type_header2777 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000000001L });
	public static final BitSet FOLLOW_RPAREN_in_column_data_type_header2779 = new BitSet(
			new long[] { 0x0000000000000002L, 0x0006400200010000L });
	public static final BitSet FOLLOW_UNSIGNED_SYM_in_column_data_type_header2784 = new BitSet(
			new long[] { 0x0000000000000002L, 0x0004400200010000L });
	public static final BitSet FOLLOW_ZEROFILL_in_column_data_type_header2789 = new BitSet(
			new long[] { 0x0000000000000002L, 0x0000400200010000L });
	public static final BitSet FOLLOW_null_or_notnull_in_column_data_type_header2794 = new BitSet(
			new long[] { 0x0000000000000002L, 0x0000000000010000L });
	public static final BitSet FOLLOW_DEFAULT_in_column_data_type_header2799 = new BitSet(
			new long[] { 0x0080000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x00001C0000000000L });
	public static final BitSet FOLLOW_number_literal_in_column_data_type_header2801 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_DOUBLE_SYM_in_column_data_type_header2814 = new BitSet(
			new long[] { 0x8000000000000002L, 0x0006400200010000L });
	public static final BitSet FOLLOW_LPAREN_in_column_data_type_header2816 = new BitSet(
			new long[] { 0x0080000000000000L });
	public static final BitSet FOLLOW_length_in_column_data_type_header2818 = new BitSet(
			new long[] { 0x0010000000000000L });
	public static final BitSet FOLLOW_COMMA_in_column_data_type_header2820 = new BitSet(
			new long[] { 0x0080000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x00001C0000000000L });
	public static final BitSet FOLLOW_number_literal_in_column_data_type_header2822 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000000001L });
	public static final BitSet FOLLOW_RPAREN_in_column_data_type_header2824 = new BitSet(
			new long[] { 0x0000000000000002L, 0x0006400200010000L });
	public static final BitSet FOLLOW_UNSIGNED_SYM_in_column_data_type_header2829 = new BitSet(
			new long[] { 0x0000000000000002L, 0x0004400200010000L });
	public static final BitSet FOLLOW_ZEROFILL_in_column_data_type_header2834 = new BitSet(
			new long[] { 0x0000000000000002L, 0x0000400200010000L });
	public static final BitSet FOLLOW_null_or_notnull_in_column_data_type_header2839 = new BitSet(
			new long[] { 0x0000000000000002L, 0x0000000000010000L });
	public static final BitSet FOLLOW_DEFAULT_in_column_data_type_header2844 = new BitSet(
			new long[] { 0x0080000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x00001C0000000000L });
	public static final BitSet FOLLOW_number_literal_in_column_data_type_header2846 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_FLOAT_SYM_in_column_data_type_header2859 = new BitSet(
			new long[] { 0x8000000000000002L, 0x0006400200010000L });
	public static final BitSet FOLLOW_LPAREN_in_column_data_type_header2861 = new BitSet(
			new long[] { 0x0080000000000000L });
	public static final BitSet FOLLOW_length_in_column_data_type_header2863 = new BitSet(
			new long[] { 0x0010000000000000L });
	public static final BitSet FOLLOW_COMMA_in_column_data_type_header2865 = new BitSet(
			new long[] { 0x0080000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x00001C0000000000L });
	public static final BitSet FOLLOW_number_literal_in_column_data_type_header2867 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000000001L });
	public static final BitSet FOLLOW_RPAREN_in_column_data_type_header2869 = new BitSet(
			new long[] { 0x0000000000000002L, 0x0006400200010000L });
	public static final BitSet FOLLOW_UNSIGNED_SYM_in_column_data_type_header2874 = new BitSet(
			new long[] { 0x0000000000000002L, 0x0004400200010000L });
	public static final BitSet FOLLOW_ZEROFILL_in_column_data_type_header2879 = new BitSet(
			new long[] { 0x0000000000000002L, 0x0000400200010000L });
	public static final BitSet FOLLOW_null_or_notnull_in_column_data_type_header2884 = new BitSet(
			new long[] { 0x0000000000000002L, 0x0000000000010000L });
	public static final BitSet FOLLOW_DEFAULT_in_column_data_type_header2889 = new BitSet(
			new long[] { 0x0080000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x00001C0000000000L });
	public static final BitSet FOLLOW_number_literal_in_column_data_type_header2891 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_DECIMAL_SYM_in_column_data_type_header2904 = new BitSet(
			new long[] { 0x8000000000000002L, 0x0006400200010000L });
	public static final BitSet FOLLOW_LPAREN_in_column_data_type_header2906 = new BitSet(
			new long[] { 0x0080000000000000L });
	public static final BitSet FOLLOW_length_in_column_data_type_header2908 = new BitSet(
			new long[] { 0x0010000000000000L, 0x0000000000000001L });
	public static final BitSet FOLLOW_COMMA_in_column_data_type_header2911 = new BitSet(
			new long[] { 0x0080000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x00001C0000000000L });
	public static final BitSet FOLLOW_number_literal_in_column_data_type_header2913 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000000001L });
	public static final BitSet FOLLOW_RPAREN_in_column_data_type_header2917 = new BitSet(
			new long[] { 0x0000000000000002L, 0x0006400200010000L });
	public static final BitSet FOLLOW_UNSIGNED_SYM_in_column_data_type_header2922 = new BitSet(
			new long[] { 0x0000000000000002L, 0x0004400200010000L });
	public static final BitSet FOLLOW_ZEROFILL_in_column_data_type_header2927 = new BitSet(
			new long[] { 0x0000000000000002L, 0x0000400200010000L });
	public static final BitSet FOLLOW_null_or_notnull_in_column_data_type_header2932 = new BitSet(
			new long[] { 0x0000000000000002L, 0x0000000000010000L });
	public static final BitSet FOLLOW_DEFAULT_in_column_data_type_header2937 = new BitSet(
			new long[] { 0x0080000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x00001C0000000000L });
	public static final BitSet FOLLOW_number_literal_in_column_data_type_header2939 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_NUMERIC_SYM_in_column_data_type_header2952 = new BitSet(
			new long[] { 0x8000000000000002L, 0x0006400200010000L });
	public static final BitSet FOLLOW_LPAREN_in_column_data_type_header2954 = new BitSet(
			new long[] { 0x0080000000000000L });
	public static final BitSet FOLLOW_length_in_column_data_type_header2956 = new BitSet(
			new long[] { 0x0010000000000000L, 0x0000000000000001L });
	public static final BitSet FOLLOW_COMMA_in_column_data_type_header2959 = new BitSet(
			new long[] { 0x0080000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x00001C0000000000L });
	public static final BitSet FOLLOW_number_literal_in_column_data_type_header2961 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000000001L });
	public static final BitSet FOLLOW_RPAREN_in_column_data_type_header2965 = new BitSet(
			new long[] { 0x0000000000000002L, 0x0006400200010000L });
	public static final BitSet FOLLOW_UNSIGNED_SYM_in_column_data_type_header2970 = new BitSet(
			new long[] { 0x0000000000000002L, 0x0004400200010000L });
	public static final BitSet FOLLOW_ZEROFILL_in_column_data_type_header2975 = new BitSet(
			new long[] { 0x0000000000000002L, 0x0000400200010000L });
	public static final BitSet FOLLOW_null_or_notnull_in_column_data_type_header2980 = new BitSet(
			new long[] { 0x0000000000000002L, 0x0000000000010000L });
	public static final BitSet FOLLOW_DEFAULT_in_column_data_type_header2985 = new BitSet(
			new long[] { 0x0080000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x00001C0000000000L });
	public static final BitSet FOLLOW_number_literal_in_column_data_type_header2987 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_DATE_SYM_in_column_data_type_header3000 = new BitSet(
			new long[] { 0x0000000000000002L, 0x0000400200010000L });
	public static final BitSet FOLLOW_null_or_notnull_in_column_data_type_header3003 = new BitSet(
			new long[] { 0x0000000000000002L, 0x0000000000010000L });
	public static final BitSet FOLLOW_DEFAULT_in_column_data_type_header3008 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000040000000000L });
	public static final BitSet FOLLOW_TEXT_STRING_in_column_data_type_header3010 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_TIME_SYM_in_column_data_type_header3023 = new BitSet(
			new long[] { 0x0000000000000002L, 0x0000400200010000L });
	public static final BitSet FOLLOW_null_or_notnull_in_column_data_type_header3026 = new BitSet(
			new long[] { 0x0000000000000002L, 0x0000000000010000L });
	public static final BitSet FOLLOW_DEFAULT_in_column_data_type_header3031 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000040000000000L });
	public static final BitSet FOLLOW_TEXT_STRING_in_column_data_type_header3033 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_TIMESTAMP_in_column_data_type_header3046 = new BitSet(
			new long[] { 0x0000000000000002L, 0x0000400200010000L });
	public static final BitSet FOLLOW_null_or_notnull_in_column_data_type_header3049 = new BitSet(
			new long[] { 0x0000000000000002L, 0x0000000000010000L });
	public static final BitSet FOLLOW_DEFAULT_in_column_data_type_header3054 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000040000000000L,
					0x0000000000000001L });
	public static final BitSet FOLLOW_set_in_column_data_type_header3056 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_DATETIME_in_column_data_type_header3073 = new BitSet(
			new long[] { 0x0000000000000002L, 0x0000400200010000L });
	public static final BitSet FOLLOW_null_or_notnull_in_column_data_type_header3076 = new BitSet(
			new long[] { 0x0000000000000002L, 0x0000000000010000L });
	public static final BitSet FOLLOW_DEFAULT_in_column_data_type_header3081 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000040000000000L,
					0x0000000000000001L });
	public static final BitSet FOLLOW_set_in_column_data_type_header3083 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_YEAR_in_column_data_type_header3100 = new BitSet(
			new long[] { 0x0000000000000002L, 0x0000400200010000L });
	public static final BitSet FOLLOW_null_or_notnull_in_column_data_type_header3103 = new BitSet(
			new long[] { 0x0000000000000002L, 0x0000000000010000L });
	public static final BitSet FOLLOW_DEFAULT_in_column_data_type_header3108 = new BitSet(
			new long[] { 0x0080000000000000L });
	public static final BitSet FOLLOW_INTEGER_NUM_in_column_data_type_header3110 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_CHAR_in_column_data_type_header3123 = new BitSet(
			new long[] { 0x8000000000000002L, 0x0000400200010000L,
					0x0000000000000030L });
	public static final BitSet FOLLOW_LPAREN_in_column_data_type_header3128 = new BitSet(
			new long[] { 0x0080000000000000L });
	public static final BitSet FOLLOW_length_in_column_data_type_header3130 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000000001L });
	public static final BitSet FOLLOW_RPAREN_in_column_data_type_header3132 = new BitSet(
			new long[] { 0x0000000000000002L, 0x0000400200010000L,
					0x0000000000000030L });
	public static final BitSet FOLLOW_CHARACTER_SYM_in_column_data_type_header3137 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000020000L });
	public static final BitSet FOLLOW_SET_SYM_in_column_data_type_header3139 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000080L, 0xFFFFE00000000000L,
					0x000000000000FFFFL });
	public static final BitSet FOLLOW_charset_name_in_column_data_type_header3141 = new BitSet(
			new long[] { 0x0000000000000002L, 0x0000400200010000L,
					0x0000000000000020L });
	public static final BitSet FOLLOW_COLLATE_SYM_in_column_data_type_header3146 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000040000L });
	public static final BitSet FOLLOW_collation_name_in_column_data_type_header3148 = new BitSet(
			new long[] { 0x0000000000000002L, 0x0000400200010000L });
	public static final BitSet FOLLOW_null_or_notnull_in_column_data_type_header3153 = new BitSet(
			new long[] { 0x0000000000000002L, 0x0000000000010000L });
	public static final BitSet FOLLOW_DEFAULT_in_column_data_type_header3158 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000040000000000L });
	public static final BitSet FOLLOW_TEXT_STRING_in_column_data_type_header3160 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_VARCHAR_in_column_data_type_header3173 = new BitSet(
			new long[] { 0x8000000000000000L });
	public static final BitSet FOLLOW_LPAREN_in_column_data_type_header3175 = new BitSet(
			new long[] { 0x0080000000000000L });
	public static final BitSet FOLLOW_length_in_column_data_type_header3177 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000000001L });
	public static final BitSet FOLLOW_RPAREN_in_column_data_type_header3179 = new BitSet(
			new long[] { 0x0000000000000002L, 0x0000400200010000L,
					0x0000000000000030L });
	public static final BitSet FOLLOW_CHARACTER_SYM_in_column_data_type_header3184 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000020000L });
	public static final BitSet FOLLOW_SET_SYM_in_column_data_type_header3186 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000080L, 0xFFFFE00000000000L,
					0x000000000000FFFFL });
	public static final BitSet FOLLOW_charset_name_in_column_data_type_header3188 = new BitSet(
			new long[] { 0x0000000000000002L, 0x0000400200010000L,
					0x0000000000000020L });
	public static final BitSet FOLLOW_COLLATE_SYM_in_column_data_type_header3193 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000040000L });
	public static final BitSet FOLLOW_collation_name_in_column_data_type_header3195 = new BitSet(
			new long[] { 0x0000000000000002L, 0x0000400200010000L });
	public static final BitSet FOLLOW_null_or_notnull_in_column_data_type_header3200 = new BitSet(
			new long[] { 0x0000000000000002L, 0x0000000000010000L });
	public static final BitSet FOLLOW_DEFAULT_in_column_data_type_header3205 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000040000000000L });
	public static final BitSet FOLLOW_TEXT_STRING_in_column_data_type_header3207 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_BINARY_in_column_data_type_header3220 = new BitSet(
			new long[] { 0x8000000000000002L, 0x0000400200010000L });
	public static final BitSet FOLLOW_LPAREN_in_column_data_type_header3225 = new BitSet(
			new long[] { 0x0080000000000000L });
	public static final BitSet FOLLOW_length_in_column_data_type_header3227 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000000001L });
	public static final BitSet FOLLOW_RPAREN_in_column_data_type_header3229 = new BitSet(
			new long[] { 0x0000000000000002L, 0x0000400200010000L });
	public static final BitSet FOLLOW_null_or_notnull_in_column_data_type_header3234 = new BitSet(
			new long[] { 0x0000000000000002L, 0x0000000000010000L });
	public static final BitSet FOLLOW_DEFAULT_in_column_data_type_header3239 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000040000000000L });
	public static final BitSet FOLLOW_TEXT_STRING_in_column_data_type_header3241 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_VARBINARY_in_column_data_type_header3254 = new BitSet(
			new long[] { 0x8000000000000000L });
	public static final BitSet FOLLOW_LPAREN_in_column_data_type_header3256 = new BitSet(
			new long[] { 0x0080000000000000L });
	public static final BitSet FOLLOW_length_in_column_data_type_header3258 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000000001L });
	public static final BitSet FOLLOW_RPAREN_in_column_data_type_header3260 = new BitSet(
			new long[] { 0x0000000000000002L, 0x0000400200010000L });
	public static final BitSet FOLLOW_null_or_notnull_in_column_data_type_header3263 = new BitSet(
			new long[] { 0x0000000000000002L, 0x0000000000010000L });
	public static final BitSet FOLLOW_DEFAULT_in_column_data_type_header3268 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000040000000000L });
	public static final BitSet FOLLOW_TEXT_STRING_in_column_data_type_header3270 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_TINYBLOB_in_column_data_type_header3283 = new BitSet(
			new long[] { 0x0000000000000002L, 0x0000400200000000L });
	public static final BitSet FOLLOW_null_or_notnull_in_column_data_type_header3286 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_BLOB_SYM_in_column_data_type_header3299 = new BitSet(
			new long[] { 0x0000000000000002L, 0x0000400200000000L });
	public static final BitSet FOLLOW_null_or_notnull_in_column_data_type_header3302 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_MEDIUMBLOB_in_column_data_type_header3315 = new BitSet(
			new long[] { 0x0000000000000002L, 0x0000400200000000L });
	public static final BitSet FOLLOW_null_or_notnull_in_column_data_type_header3318 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_LONGBLOB_in_column_data_type_header3331 = new BitSet(
			new long[] { 0x0000000000000002L, 0x0000400200000000L });
	public static final BitSet FOLLOW_null_or_notnull_in_column_data_type_header3334 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_TINYTEXT_in_column_data_type_header3347 = new BitSet(
			new long[] { 0x0000000000000002L, 0x0000400200000000L,
					0x00000000000000B0L });
	public static final BitSet FOLLOW_BINARY_in_column_data_type_header3352 = new BitSet(
			new long[] { 0x0000000000000002L, 0x0000400200000000L,
					0x0000000000000030L });
	public static final BitSet FOLLOW_CHARACTER_SYM_in_column_data_type_header3357 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000020000L });
	public static final BitSet FOLLOW_SET_SYM_in_column_data_type_header3359 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000080L, 0xFFFFE00000000000L,
					0x000000000000FFFFL });
	public static final BitSet FOLLOW_charset_name_in_column_data_type_header3361 = new BitSet(
			new long[] { 0x0000000000000002L, 0x0000400200000000L,
					0x0000000000000020L });
	public static final BitSet FOLLOW_COLLATE_SYM_in_column_data_type_header3366 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000040000L });
	public static final BitSet FOLLOW_collation_name_in_column_data_type_header3368 = new BitSet(
			new long[] { 0x0000000000000002L, 0x0000400200000000L });
	public static final BitSet FOLLOW_null_or_notnull_in_column_data_type_header3373 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_TEXT_SYM_in_column_data_type_header3386 = new BitSet(
			new long[] { 0x0000000000000002L, 0x0000400200000000L,
					0x00000000000000B0L });
	public static final BitSet FOLLOW_BINARY_in_column_data_type_header3391 = new BitSet(
			new long[] { 0x0000000000000002L, 0x0000400200000000L,
					0x0000000000000030L });
	public static final BitSet FOLLOW_CHARACTER_SYM_in_column_data_type_header3396 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000020000L });
	public static final BitSet FOLLOW_SET_SYM_in_column_data_type_header3398 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000080L, 0xFFFFE00000000000L,
					0x000000000000FFFFL });
	public static final BitSet FOLLOW_charset_name_in_column_data_type_header3400 = new BitSet(
			new long[] { 0x0000000000000002L, 0x0000400200000000L,
					0x0000000000000020L });
	public static final BitSet FOLLOW_COLLATE_SYM_in_column_data_type_header3405 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000040000L });
	public static final BitSet FOLLOW_collation_name_in_column_data_type_header3407 = new BitSet(
			new long[] { 0x0000000000000002L, 0x0000400200000000L });
	public static final BitSet FOLLOW_null_or_notnull_in_column_data_type_header3412 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_MEDIUMTEXT_in_column_data_type_header3425 = new BitSet(
			new long[] { 0x0000000000000002L, 0x0000400200000000L,
					0x00000000000000B0L });
	public static final BitSet FOLLOW_BINARY_in_column_data_type_header3428 = new BitSet(
			new long[] { 0x0000000000000002L, 0x0000400200000000L,
					0x0000000000000030L });
	public static final BitSet FOLLOW_CHARACTER_SYM_in_column_data_type_header3433 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000020000L });
	public static final BitSet FOLLOW_SET_SYM_in_column_data_type_header3435 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000080L, 0xFFFFE00000000000L,
					0x000000000000FFFFL });
	public static final BitSet FOLLOW_charset_name_in_column_data_type_header3437 = new BitSet(
			new long[] { 0x0000000000000002L, 0x0000400200000000L,
					0x0000000000000020L });
	public static final BitSet FOLLOW_COLLATE_SYM_in_column_data_type_header3442 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000040000L });
	public static final BitSet FOLLOW_collation_name_in_column_data_type_header3444 = new BitSet(
			new long[] { 0x0000000000000002L, 0x0000400200000000L });
	public static final BitSet FOLLOW_null_or_notnull_in_column_data_type_header3449 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_LONGTEXT_in_column_data_type_header3462 = new BitSet(
			new long[] { 0x0000000000000002L, 0x0000400200000000L,
					0x00000000000000B0L });
	public static final BitSet FOLLOW_BINARY_in_column_data_type_header3467 = new BitSet(
			new long[] { 0x0000000000000002L, 0x0000400200000000L,
					0x0000000000000030L });
	public static final BitSet FOLLOW_CHARACTER_SYM_in_column_data_type_header3472 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000020000L });
	public static final BitSet FOLLOW_SET_SYM_in_column_data_type_header3474 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000080L, 0xFFFFE00000000000L,
					0x000000000000FFFFL });
	public static final BitSet FOLLOW_charset_name_in_column_data_type_header3476 = new BitSet(
			new long[] { 0x0000000000000002L, 0x0000400200000000L,
					0x0000000000000020L });
	public static final BitSet FOLLOW_COLLATE_SYM_in_column_data_type_header3481 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000040000L });
	public static final BitSet FOLLOW_collation_name_in_column_data_type_header3483 = new BitSet(
			new long[] { 0x0000000000000002L, 0x0000400200000000L });
	public static final BitSet FOLLOW_null_or_notnull_in_column_data_type_header3488 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_ENUM_in_column_data_type_header3501 = new BitSet(
			new long[] { 0x8000000000000000L });
	public static final BitSet FOLLOW_LPAREN_in_column_data_type_header3506 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000040000000000L });
	public static final BitSet FOLLOW_TEXT_STRING_in_column_data_type_header3508 = new BitSet(
			new long[] { 0x0010000000000000L, 0x0000000000000001L });
	public static final BitSet FOLLOW_COMMA_in_column_data_type_header3511 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000040000000000L });
	public static final BitSet FOLLOW_TEXT_STRING_in_column_data_type_header3513 = new BitSet(
			new long[] { 0x0010000000000000L, 0x0000000000000001L });
	public static final BitSet FOLLOW_RPAREN_in_column_data_type_header3517 = new BitSet(
			new long[] { 0x0000000000000002L, 0x0000400200010000L,
					0x0000000000000030L });
	public static final BitSet FOLLOW_CHARACTER_SYM_in_column_data_type_header3520 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000020000L });
	public static final BitSet FOLLOW_SET_SYM_in_column_data_type_header3522 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000080L, 0xFFFFE00000000000L,
					0x000000000000FFFFL });
	public static final BitSet FOLLOW_charset_name_in_column_data_type_header3524 = new BitSet(
			new long[] { 0x0000000000000002L, 0x0000400200010000L,
					0x0000000000000020L });
	public static final BitSet FOLLOW_COLLATE_SYM_in_column_data_type_header3529 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000040000L });
	public static final BitSet FOLLOW_collation_name_in_column_data_type_header3531 = new BitSet(
			new long[] { 0x0000000000000002L, 0x0000400200010000L });
	public static final BitSet FOLLOW_null_or_notnull_in_column_data_type_header3536 = new BitSet(
			new long[] { 0x0000000000000002L, 0x0000000000010000L });
	public static final BitSet FOLLOW_DEFAULT_in_column_data_type_header3541 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000040000000000L });
	public static final BitSet FOLLOW_TEXT_STRING_in_column_data_type_header3543 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_SET_SYM_in_column_data_type_header3556 = new BitSet(
			new long[] { 0x8000000000000000L });
	public static final BitSet FOLLOW_LPAREN_in_column_data_type_header3558 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000040000000000L });
	public static final BitSet FOLLOW_TEXT_STRING_in_column_data_type_header3560 = new BitSet(
			new long[] { 0x0010000000000000L, 0x0000000000000001L });
	public static final BitSet FOLLOW_COMMA_in_column_data_type_header3563 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000040000000000L });
	public static final BitSet FOLLOW_TEXT_STRING_in_column_data_type_header3565 = new BitSet(
			new long[] { 0x0010000000000000L, 0x0000000000000001L });
	public static final BitSet FOLLOW_RPAREN_in_column_data_type_header3569 = new BitSet(
			new long[] { 0x0000000000000002L, 0x0000400200010000L,
					0x0000000000000030L });
	public static final BitSet FOLLOW_CHARACTER_SYM_in_column_data_type_header3572 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000020000L });
	public static final BitSet FOLLOW_SET_SYM_in_column_data_type_header3574 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000080L, 0xFFFFE00000000000L,
					0x000000000000FFFFL });
	public static final BitSet FOLLOW_charset_name_in_column_data_type_header3576 = new BitSet(
			new long[] { 0x0000000000000002L, 0x0000400200010000L,
					0x0000000000000020L });
	public static final BitSet FOLLOW_COLLATE_SYM_in_column_data_type_header3581 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000040000L });
	public static final BitSet FOLLOW_collation_name_in_column_data_type_header3583 = new BitSet(
			new long[] { 0x0000000000000002L, 0x0000400200010000L });
	public static final BitSet FOLLOW_null_or_notnull_in_column_data_type_header3588 = new BitSet(
			new long[] { 0x0000000000000002L, 0x0000000000010000L });
	public static final BitSet FOLLOW_DEFAULT_in_column_data_type_header3593 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000040000000000L });
	public static final BitSet FOLLOW_TEXT_STRING_in_column_data_type_header3595 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_column_name_in_index_column_name3611 = new BitSet(
			new long[] { 0x8C00000000000002L });
	public static final BitSet FOLLOW_LPAREN_in_index_column_name3614 = new BitSet(
			new long[] { 0x0080000000000000L });
	public static final BitSet FOLLOW_INTEGER_NUM_in_index_column_name3616 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000000001L });
	public static final BitSet FOLLOW_RPAREN_in_index_column_name3618 = new BitSet(
			new long[] { 0x0C00000000000002L });
	public static final BitSet FOLLOW_ASC_in_index_column_name3623 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_DESC_in_index_column_name3627 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_REFERENCES_in_reference_definition3642 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000040000L });
	public static final BitSet FOLLOW_table_name_in_reference_definition3644 = new BitSet(
			new long[] { 0x8000000000000000L });
	public static final BitSet FOLLOW_LPAREN_in_reference_definition3646 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000040000L });
	public static final BitSet FOLLOW_index_column_name_in_reference_definition3648 = new BitSet(
			new long[] { 0x0010000000000000L, 0x0000000000000001L });
	public static final BitSet FOLLOW_COMMA_in_reference_definition3651 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000040000L });
	public static final BitSet FOLLOW_index_column_name_in_reference_definition3653 = new BitSet(
			new long[] { 0x0010000000000000L, 0x0000000000000001L });
	public static final BitSet FOLLOW_RPAREN_in_reference_definition3657 = new BitSet(
			new long[] { 0x0000000000000002L, 0x0000000000000400L,
					0x0000000000080000L });
	public static final BitSet FOLLOW_MATCH_in_reference_definition3663 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000000000L,
					0x0000000000100000L });
	public static final BitSet FOLLOW_FULL_in_reference_definition3665 = new BitSet(
			new long[] { 0x0000000000000002L, 0x0000000000000400L });
	public static final BitSet FOLLOW_MATCH_in_reference_definition3671 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000000000L,
					0x0000000000200000L });
	public static final BitSet FOLLOW_PARTIAL_in_reference_definition3673 = new BitSet(
			new long[] { 0x0000000000000002L, 0x0000000000000400L });
	public static final BitSet FOLLOW_MATCH_in_reference_definition3679 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000000000L,
					0x0000000000400000L });
	public static final BitSet FOLLOW_SIMPLE_SYM_in_reference_definition3681 = new BitSet(
			new long[] { 0x0000000000000002L, 0x0000000000000400L });
	public static final BitSet FOLLOW_ON_in_reference_definition3689 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000000004L });
	public static final BitSet FOLLOW_DELETE_SYM_in_reference_definition3691 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000020000L,
					0x0000000003800000L });
	public static final BitSet FOLLOW_reference_option_in_reference_definition3693 = new BitSet(
			new long[] { 0x0000000000000002L, 0x0000000000000400L });
	public static final BitSet FOLLOW_ON_in_reference_definition3699 = new BitSet(
			new long[] { 0x0000100000000000L });
	public static final BitSet FOLLOW_UPDATE_in_reference_definition3701 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000020000L,
					0x0000000003800000L });
	public static final BitSet FOLLOW_reference_option_in_reference_definition3703 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_RESTRICT_in_reference_option3716 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_CASCADE_in_reference_option3722 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_SET_SYM_in_reference_option3728 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000400000000000L });
	public static final BitSet FOLLOW_NULL_SYM_in_reference_option3730 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_NO_SYM_in_reference_option3736 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000000000L,
					0x0000000004000000L });
	public static final BitSet FOLLOW_ACTION_in_reference_option3738 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_table_option_in_table_options3748 = new BitSet(
			new long[] { 0x0010000020000002L, 0x0000030000410000L,
					0x0000C7E6F8000030L });
	public static final BitSet FOLLOW_COMMA_in_table_options3753 = new BitSet(
			new long[] { 0x0000000020000000L, 0x0000030000410000L,
					0x0000C7E6F8000030L });
	public static final BitSet FOLLOW_table_option_in_table_options3759 = new BitSet(
			new long[] { 0x0010000020000002L, 0x0000030000410000L,
					0x0000C7E6F8000030L });
	public static final BitSet FOLLOW_ENGINE_SYM_in_table_option3774 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000002000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000040000L });
	public static final BitSet FOLLOW_EQ_SYM_in_table_option3777 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000002000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000040000L });
	public static final BitSet FOLLOW_engine_name_in_table_option3781 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_AUTO_INCREMENT_in_table_option3792 = new BitSet(
			new long[] { 0x0080000000000000L, 0x0000000000002000L });
	public static final BitSet FOLLOW_EQ_SYM_in_table_option3795 = new BitSet(
			new long[] { 0x0080000000000000L });
	public static final BitSet FOLLOW_INTEGER_NUM_in_table_option3799 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_AVG_ROW_LENGTH_in_table_option3810 = new BitSet(
			new long[] { 0x0080000000000000L, 0x0000000000002000L });
	public static final BitSet FOLLOW_EQ_SYM_in_table_option3813 = new BitSet(
			new long[] { 0x0080000000000000L });
	public static final BitSet FOLLOW_INTEGER_NUM_in_table_option3817 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_DEFAULT_in_table_option3829 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000010L });
	public static final BitSet FOLLOW_CHARACTER_SYM_in_table_option3833 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000020000L });
	public static final BitSet FOLLOW_SET_SYM_in_table_option3835 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000002000L,
					0x0000000000000080L, 0xFFFFE00000000000L,
					0x000000000000FFFFL });
	public static final BitSet FOLLOW_EQ_SYM_in_table_option3838 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000080L, 0xFFFFE00000000000L,
					0x000000000000FFFFL });
	public static final BitSet FOLLOW_charset_name_in_table_option3842 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_CHECKSUM_SYM_in_table_option3853 = new BitSet(
			new long[] { 0x0080000000000000L, 0x0000000000002000L });
	public static final BitSet FOLLOW_EQ_SYM_in_table_option3856 = new BitSet(
			new long[] { 0x0080000000000000L });
	public static final BitSet FOLLOW_INTEGER_NUM_in_table_option3860 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_DEFAULT_in_table_option3872 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000020L });
	public static final BitSet FOLLOW_COLLATE_SYM_in_table_option3876 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000002000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000040000L });
	public static final BitSet FOLLOW_EQ_SYM_in_table_option3879 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000040000L });
	public static final BitSet FOLLOW_collation_name_in_table_option3883 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_COMMENT_SYM_in_table_option3894 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000040000002000L });
	public static final BitSet FOLLOW_EQ_SYM_in_table_option3897 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000040000000000L });
	public static final BitSet FOLLOW_TEXT_STRING_in_table_option3901 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_CONNECTION_SYM_in_table_option3912 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000040000002000L });
	public static final BitSet FOLLOW_EQ_SYM_in_table_option3915 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000040000000000L });
	public static final BitSet FOLLOW_TEXT_STRING_in_table_option3919 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_DATA_SYM_in_table_option3930 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000000000L,
					0x0000000100000000L });
	public static final BitSet FOLLOW_DIRECTORY_SYM_in_table_option3932 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000040000002000L });
	public static final BitSet FOLLOW_EQ_SYM_in_table_option3935 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000040000000000L });
	public static final BitSet FOLLOW_TEXT_STRING_in_table_option3939 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_DELAY_KEY_WRITE_SYM_in_table_option3950 = new BitSet(
			new long[] { 0x0080000000000000L, 0x0000000000002000L });
	public static final BitSet FOLLOW_EQ_SYM_in_table_option3953 = new BitSet(
			new long[] { 0x0080000000000000L });
	public static final BitSet FOLLOW_INTEGER_NUM_in_table_option3957 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_INDEX_SYM_in_table_option3968 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000000000L,
					0x0000000100000000L });
	public static final BitSet FOLLOW_DIRECTORY_SYM_in_table_option3970 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000040000002000L });
	public static final BitSet FOLLOW_EQ_SYM_in_table_option3973 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000040000000000L });
	public static final BitSet FOLLOW_TEXT_STRING_in_table_option3977 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_INSERT_METHOD_in_table_option3988 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000002000L,
					0x0000001802000000L });
	public static final BitSet FOLLOW_EQ_SYM_in_table_option3991 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000000000L,
					0x0000001802000000L });
	public static final BitSet FOLLOW_set_in_table_option3995 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_KEY_BLOCK_SIZE_in_table_option4018 = new BitSet(
			new long[] { 0x0080000000000000L, 0x0000000000002000L });
	public static final BitSet FOLLOW_EQ_SYM_in_table_option4021 = new BitSet(
			new long[] { 0x0080000000000000L });
	public static final BitSet FOLLOW_INTEGER_NUM_in_table_option4025 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_MAX_ROWS_in_table_option4036 = new BitSet(
			new long[] { 0x0080000000000000L, 0x0000000000002000L });
	public static final BitSet FOLLOW_EQ_SYM_in_table_option4039 = new BitSet(
			new long[] { 0x0080000000000000L });
	public static final BitSet FOLLOW_INTEGER_NUM_in_table_option4043 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_MIN_ROWS_in_table_option4054 = new BitSet(
			new long[] { 0x0080000000000000L, 0x0000000000002000L });
	public static final BitSet FOLLOW_EQ_SYM_in_table_option4057 = new BitSet(
			new long[] { 0x0080000000000000L });
	public static final BitSet FOLLOW_INTEGER_NUM_in_table_option4061 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_PACK_KEYS_SYM_in_table_option4072 = new BitSet(
			new long[] { 0x0080000000000000L, 0x0000000000012000L });
	public static final BitSet FOLLOW_EQ_SYM_in_table_option4075 = new BitSet(
			new long[] { 0x0080000000000000L, 0x0000000000010000L });
	public static final BitSet FOLLOW_set_in_table_option4079 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_PASSWORD_in_table_option4096 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000040000002000L });
	public static final BitSet FOLLOW_EQ_SYM_in_table_option4099 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000040000000000L });
	public static final BitSet FOLLOW_TEXT_STRING_in_table_option4103 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_ROW_FORMAT_SYM_in_table_option4114 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000300000012000L,
					0x0000380000000000L });
	public static final BitSet FOLLOW_EQ_SYM_in_table_option4117 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000300000010000L,
					0x0000380000000000L });
	public static final BitSet FOLLOW_set_in_table_option4121 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_STATS_AUTO_RECALC_in_table_option4144 = new BitSet(
			new long[] { 0x0080000000000000L, 0x0000000000012000L });
	public static final BitSet FOLLOW_EQ_SYM_in_table_option4147 = new BitSet(
			new long[] { 0x0080000000000000L, 0x0000000000010000L });
	public static final BitSet FOLLOW_set_in_table_option4151 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_STATS_PERSISTENT_in_table_option4168 = new BitSet(
			new long[] { 0x0080000000000000L, 0x0000000000012000L });
	public static final BitSet FOLLOW_EQ_SYM_in_table_option4171 = new BitSet(
			new long[] { 0x0080000000000000L, 0x0000000000010000L });
	public static final BitSet FOLLOW_set_in_table_option4175 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_UNION_SYM_in_table_option4192 = new BitSet(
			new long[] { 0x8000000000000000L, 0x0000000000002000L });
	public static final BitSet FOLLOW_EQ_SYM_in_table_option4195 = new BitSet(
			new long[] { 0x8000000000000000L });
	public static final BitSet FOLLOW_LPAREN_in_table_option4199 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000040000L });
	public static final BitSet FOLLOW_table_name_in_table_option4201 = new BitSet(
			new long[] { 0x0010000000000000L, 0x0000000000000001L });
	public static final BitSet FOLLOW_COMMA_in_table_option4204 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000040000L });
	public static final BitSet FOLLOW_table_name_in_table_option4206 = new BitSet(
			new long[] { 0x0010000000000000L, 0x0000000000000001L });
	public static final BitSet FOLLOW_RPAREN_in_table_option4210 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_PARTITION_SYM_in_partition_options4222 = new BitSet(
			new long[] { 0x0008000000000000L });
	public static final BitSet FOLLOW_BY_SYM_in_partition_options4224 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000001000L,
					0x002E000000000000L });
	public static final BitSet FOLLOW_LINEAR_SYM_in_partition_options4237 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000000000L,
					0x0004000000000000L });
	public static final BitSet FOLLOW_HASH_SYM_in_partition_options4241 = new BitSet(
			new long[] { 0x8000000000000000L });
	public static final BitSet FOLLOW_LPAREN_in_partition_options4243 = new BitSet(
			new long[] { 0x8080000000000000L, 0xE000440700014100L,
					0x000002000008008CL, 0x0000400108004200L,
					0xFFFFFC001DC00000L, 0xFFFFFFFFFFFFFFFFL,
					0xFFFFFFFFFFFFFFFFL, 0x0000041F0007FFFFL });
	public static final BitSet FOLLOW_expression_in_partition_options4245 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000000001L });
	public static final BitSet FOLLOW_RPAREN_in_partition_options4247 = new BitSet(
			new long[] { 0x8000000000000002L, 0x0000000000000000L,
					0x00C0000000000000L });
	public static final BitSet FOLLOW_LINEAR_SYM_in_partition_options4258 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000001000L });
	public static final BitSet FOLLOW_KEY_SYM_in_partition_options4262 = new BitSet(
			new long[] { 0x8000000000000000L });
	public static final BitSet FOLLOW_LPAREN_in_partition_options4264 = new BitSet(
			new long[] { 0x8000000000000000L });
	public static final BitSet FOLLOW_column_list_in_partition_options4266 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000000001L });
	public static final BitSet FOLLOW_RPAREN_in_partition_options4268 = new BitSet(
			new long[] { 0x8000000000000002L, 0x0000000000000000L,
					0x00C0000000000000L });
	public static final BitSet FOLLOW_RANGE_SYM_in_partition_options4278 = new BitSet(
			new long[] { 0x8000000000000000L, 0x0000000000000000L,
					0x0010000000000000L });
	public static final BitSet FOLLOW_LPAREN_in_partition_options4280 = new BitSet(
			new long[] { 0x8080000000000000L, 0xE000440700014100L,
					0x000002000008008CL, 0x0000400108004200L,
					0xFFFFFC001DC00000L, 0xFFFFFFFFFFFFFFFFL,
					0xFFFFFFFFFFFFFFFFL, 0x0000041F0007FFFFL });
	public static final BitSet FOLLOW_expression_in_partition_options4282 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000000001L });
	public static final BitSet FOLLOW_RPAREN_in_partition_options4284 = new BitSet(
			new long[] { 0x8000000000000002L, 0x0000000000000000L,
					0x00C0000000000000L });
	public static final BitSet FOLLOW_COLUMNS_SYM_in_partition_options4288 = new BitSet(
			new long[] { 0x8000000000000000L });
	public static final BitSet FOLLOW_LPAREN_in_partition_options4290 = new BitSet(
			new long[] { 0x8000000000000000L });
	public static final BitSet FOLLOW_column_list_in_partition_options4292 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000000001L });
	public static final BitSet FOLLOW_RPAREN_in_partition_options4294 = new BitSet(
			new long[] { 0x8000000000000002L, 0x0000000000000000L,
					0x00C0000000000000L });
	public static final BitSet FOLLOW_LIST_SYM_in_partition_options4305 = new BitSet(
			new long[] { 0x8000000000000000L, 0x0000000000000000L,
					0x0010000000000000L });
	public static final BitSet FOLLOW_LPAREN_in_partition_options4307 = new BitSet(
			new long[] { 0x8080000000000000L, 0xE000440700014100L,
					0x000002000008008CL, 0x0000400108004200L,
					0xFFFFFC001DC00000L, 0xFFFFFFFFFFFFFFFFL,
					0xFFFFFFFFFFFFFFFFL, 0x0000041F0007FFFFL });
	public static final BitSet FOLLOW_expression_in_partition_options4309 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000000001L });
	public static final BitSet FOLLOW_RPAREN_in_partition_options4311 = new BitSet(
			new long[] { 0x8000000000000002L, 0x0000000000000000L,
					0x00C0000000000000L });
	public static final BitSet FOLLOW_COLUMNS_SYM_in_partition_options4315 = new BitSet(
			new long[] { 0x8000000000000000L });
	public static final BitSet FOLLOW_LPAREN_in_partition_options4317 = new BitSet(
			new long[] { 0x8000000000000000L });
	public static final BitSet FOLLOW_column_list_in_partition_options4319 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000000001L });
	public static final BitSet FOLLOW_RPAREN_in_partition_options4321 = new BitSet(
			new long[] { 0x8000000000000002L, 0x0000000000000000L,
					0x00C0000000000000L });
	public static final BitSet FOLLOW_PARTITIONS_SYM_in_partition_options4333 = new BitSet(
			new long[] { 0x0080000000000000L });
	public static final BitSet FOLLOW_INTEGER_NUM_in_partition_options4335 = new BitSet(
			new long[] { 0x8000000000000002L, 0x0000000000000000L,
					0x0080000000000000L });
	public static final BitSet FOLLOW_SUBPARTITION_SYM_in_partition_options4346 = new BitSet(
			new long[] { 0x0008000000000000L });
	public static final BitSet FOLLOW_BY_SYM_in_partition_options4348 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000001000L,
					0x0006000000000000L });
	public static final BitSet FOLLOW_LINEAR_SYM_in_partition_options4357 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000000000L,
					0x0004000000000000L });
	public static final BitSet FOLLOW_HASH_SYM_in_partition_options4361 = new BitSet(
			new long[] { 0x8000000000000000L });
	public static final BitSet FOLLOW_LPAREN_in_partition_options4363 = new BitSet(
			new long[] { 0x8080000000000000L, 0xE000440700014100L,
					0x000002000008008CL, 0x0000400108004200L,
					0xFFFFFC001DC00000L, 0xFFFFFFFFFFFFFFFFL,
					0xFFFFFFFFFFFFFFFFL, 0x0000041F0007FFFFL });
	public static final BitSet FOLLOW_expression_in_partition_options4365 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000000001L });
	public static final BitSet FOLLOW_RPAREN_in_partition_options4367 = new BitSet(
			new long[] { 0x0000001000000000L });
	public static final BitSet FOLLOW_LINEAR_SYM_in_partition_options4376 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000001000L });
	public static final BitSet FOLLOW_KEY_SYM_in_partition_options4380 = new BitSet(
			new long[] { 0x8000000000000000L });
	public static final BitSet FOLLOW_LPAREN_in_partition_options4382 = new BitSet(
			new long[] { 0x8000000000000000L });
	public static final BitSet FOLLOW_column_list_in_partition_options4384 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000000001L });
	public static final BitSet FOLLOW_RPAREN_in_partition_options4386 = new BitSet(
			new long[] { 0x0000001000000000L });
	public static final BitSet FOLLOW_SQL_SMALL_RESULT_in_partition_options4394 = new BitSet(
			new long[] { 0x8000000000000002L, 0x0000000000000000L,
					0x0100000000000000L });
	public static final BitSet FOLLOW_SUBPARTITIONS_SYM_in_partition_options4396 = new BitSet(
			new long[] { 0x0080000000000000L });
	public static final BitSet FOLLOW_INTEGER_NUM_in_partition_options4398 = new BitSet(
			new long[] { 0x8000000000000002L });
	public static final BitSet FOLLOW_LPAREN_in_partition_options4410 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000000000L,
					0x0001000000000000L });
	public static final BitSet FOLLOW_partition_definition_in_partition_options4412 = new BitSet(
			new long[] { 0x0010000000000000L, 0x0000000000000001L });
	public static final BitSet FOLLOW_COMMA_in_partition_options4416 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000000000L,
					0x0001000000000000L });
	public static final BitSet FOLLOW_partition_definition_in_partition_options4419 = new BitSet(
			new long[] { 0x0010000000000000L, 0x0000000000000001L });
	public static final BitSet FOLLOW_RPAREN_in_partition_options4423 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_PARTITION_SYM_in_partition_definition4434 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000040000L });
	public static final BitSet FOLLOW_partition_name_in_partition_definition4436 = new BitSet(
			new long[] { 0x8000000000000002L, 0x0000020000404000L,
					0x100000C088000000L });
	public static final BitSet FOLLOW_VALUES_in_partition_definition4445 = new BitSet(
			new long[] { 0x0000400000000000L, 0x0000000000000000L,
					0x0200000000000000L });
	public static final BitSet FOLLOW_LESS_SYM_in_partition_definition4456 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000000000L,
					0x0400000000000000L });
	public static final BitSet FOLLOW_THAN_SYM_in_partition_definition4458 = new BitSet(
			new long[] { 0x8000000000000000L, 0x0000000000000000L,
					0x0800000000000000L });
	public static final BitSet FOLLOW_LPAREN_in_partition_definition4463 = new BitSet(
			new long[] { 0x8000000000000000L });
	public static final BitSet FOLLOW_expression_list_in_partition_definition4465 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000000001L });
	public static final BitSet FOLLOW_RPAREN_in_partition_definition4467 = new BitSet(
			new long[] { 0x8000000000000002L, 0x0000020000400000L,
					0x100000C088000000L });
	public static final BitSet FOLLOW_MAXVALUE_SYM_in_partition_definition4472 = new BitSet(
			new long[] { 0x8000000000000002L, 0x0000020000400000L,
					0x100000C088000000L });
	public static final BitSet FOLLOW_IN_SYM_in_partition_definition4487 = new BitSet(
			new long[] { 0x8000000000000000L });
	public static final BitSet FOLLOW_LPAREN_in_partition_definition4489 = new BitSet(
			new long[] { 0x8000000000000000L });
	public static final BitSet FOLLOW_expression_list_in_partition_definition4491 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000000001L });
	public static final BitSet FOLLOW_RPAREN_in_partition_definition4493 = new BitSet(
			new long[] { 0x8000000000000002L, 0x0000020000400000L,
					0x100000C088000000L });
	public static final BitSet FOLLOW_STORAGE_SYM_in_partition_definition4509 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000000000L,
					0x0000000008000000L });
	public static final BitSet FOLLOW_ENGINE_SYM_in_partition_definition4513 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000002000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000040000L });
	public static final BitSet FOLLOW_EQ_SYM_in_partition_definition4516 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000002000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000040000L });
	public static final BitSet FOLLOW_engine_name_in_partition_definition4520 = new BitSet(
			new long[] { 0x8000000000000002L, 0x0000020000400000L,
					0x000000C080000000L });
	public static final BitSet FOLLOW_COMMENT_SYM_in_partition_definition4526 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000040000002000L });
	public static final BitSet FOLLOW_EQ_SYM_in_partition_definition4529 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000040000000000L });
	public static final BitSet FOLLOW_TEXT_STRING_in_partition_definition4533 = new BitSet(
			new long[] { 0x8000000000000002L, 0x0000000000400000L,
					0x000000C080000000L });
	public static final BitSet FOLLOW_DATA_SYM_in_partition_definition4540 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000000000L,
					0x0000000100000000L });
	public static final BitSet FOLLOW_DIRECTORY_SYM_in_partition_definition4542 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000040000002000L });
	public static final BitSet FOLLOW_EQ_SYM_in_partition_definition4545 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000040000000000L });
	public static final BitSet FOLLOW_TEXT_STRING_in_partition_definition4549 = new BitSet(
			new long[] { 0x8000000000000002L, 0x0000000000400000L,
					0x000000C000000000L });
	public static final BitSet FOLLOW_INDEX_SYM_in_partition_definition4555 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000000000L,
					0x0000000100000000L });
	public static final BitSet FOLLOW_DIRECTORY_SYM_in_partition_definition4557 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000040000002000L });
	public static final BitSet FOLLOW_EQ_SYM_in_partition_definition4560 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000040000000000L });
	public static final BitSet FOLLOW_TEXT_STRING_in_partition_definition4564 = new BitSet(
			new long[] { 0x8000000000000002L, 0x0000000000000000L,
					0x000000C000000000L });
	public static final BitSet FOLLOW_MAX_ROWS_in_partition_definition4570 = new BitSet(
			new long[] { 0x0080000000000000L, 0x0000000000002000L });
	public static final BitSet FOLLOW_EQ_SYM_in_partition_definition4573 = new BitSet(
			new long[] { 0x0080000000000000L });
	public static final BitSet FOLLOW_INTEGER_NUM_in_partition_definition4577 = new BitSet(
			new long[] { 0x8000000000000002L, 0x0000000000000000L,
					0x0000008000000000L });
	public static final BitSet FOLLOW_MIN_ROWS_in_partition_definition4583 = new BitSet(
			new long[] { 0x0080000000000000L, 0x0000000000002000L });
	public static final BitSet FOLLOW_EQ_SYM_in_partition_definition4586 = new BitSet(
			new long[] { 0x0080000000000000L });
	public static final BitSet FOLLOW_INTEGER_NUM_in_partition_definition4590 = new BitSet(
			new long[] { 0x8000000000000002L });
	public static final BitSet FOLLOW_LPAREN_in_partition_definition4596 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000000000L,
					0x0080000000000000L });
	public static final BitSet FOLLOW_subpartition_definition_in_partition_definition4598 = new BitSet(
			new long[] { 0x0010000000000000L, 0x0000000000000001L });
	public static final BitSet FOLLOW_COMMA_in_partition_definition4601 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000000000L,
					0x0080000000000000L });
	public static final BitSet FOLLOW_subpartition_definition_in_partition_definition4604 = new BitSet(
			new long[] { 0x0010000000000000L, 0x0000000000000001L });
	public static final BitSet FOLLOW_RPAREN_in_partition_definition4608 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_SUBPARTITION_SYM_in_subpartition_definition4619 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000040000L });
	public static final BitSet FOLLOW_partition_logical_name_in_subpartition_definition4621 = new BitSet(
			new long[] { 0x0000000000000002L, 0x0000020000400000L,
					0x100000C088000000L });
	public static final BitSet FOLLOW_STORAGE_SYM_in_subpartition_definition4626 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000000000L,
					0x0000000008000000L });
	public static final BitSet FOLLOW_ENGINE_SYM_in_subpartition_definition4630 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000002000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000040000L });
	public static final BitSet FOLLOW_EQ_SYM_in_subpartition_definition4633 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000002000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000040000L });
	public static final BitSet FOLLOW_engine_name_in_subpartition_definition4637 = new BitSet(
			new long[] { 0x0000000000000002L, 0x0000020000400000L,
					0x000000C080000000L });
	public static final BitSet FOLLOW_COMMENT_SYM_in_subpartition_definition4643 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000040000002000L });
	public static final BitSet FOLLOW_EQ_SYM_in_subpartition_definition4646 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000040000000000L });
	public static final BitSet FOLLOW_TEXT_STRING_in_subpartition_definition4650 = new BitSet(
			new long[] { 0x0000000000000002L, 0x0000000000400000L,
					0x000000C080000000L });
	public static final BitSet FOLLOW_DATA_SYM_in_subpartition_definition4657 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000000000L,
					0x0000000100000000L });
	public static final BitSet FOLLOW_DIRECTORY_SYM_in_subpartition_definition4659 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000040000002000L });
	public static final BitSet FOLLOW_EQ_SYM_in_subpartition_definition4662 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000040000000000L });
	public static final BitSet FOLLOW_TEXT_STRING_in_subpartition_definition4666 = new BitSet(
			new long[] { 0x0000000000000002L, 0x0000000000400000L,
					0x000000C000000000L });
	public static final BitSet FOLLOW_INDEX_SYM_in_subpartition_definition4672 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000000000L,
					0x0000000100000000L });
	public static final BitSet FOLLOW_DIRECTORY_SYM_in_subpartition_definition4674 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000040000002000L });
	public static final BitSet FOLLOW_EQ_SYM_in_subpartition_definition4677 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000040000000000L });
	public static final BitSet FOLLOW_TEXT_STRING_in_subpartition_definition4681 = new BitSet(
			new long[] { 0x0000000000000002L, 0x0000000000000000L,
					0x000000C000000000L });
	public static final BitSet FOLLOW_MAX_ROWS_in_subpartition_definition4687 = new BitSet(
			new long[] { 0x0080000000000000L, 0x0000000000002000L });
	public static final BitSet FOLLOW_EQ_SYM_in_subpartition_definition4690 = new BitSet(
			new long[] { 0x0080000000000000L });
	public static final BitSet FOLLOW_INTEGER_NUM_in_subpartition_definition4694 = new BitSet(
			new long[] { 0x0000000000000002L, 0x0000000000000000L,
					0x0000008000000000L });
	public static final BitSet FOLLOW_MIN_ROWS_in_subpartition_definition4700 = new BitSet(
			new long[] { 0x0080000000000000L, 0x0000000000002000L });
	public static final BitSet FOLLOW_EQ_SYM_in_subpartition_definition4703 = new BitSet(
			new long[] { 0x0080000000000000L });
	public static final BitSet FOLLOW_INTEGER_NUM_in_subpartition_definition4707 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_INTEGER_NUM_in_length4718 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_ALTER_in_alter_table_statement4728 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000080000020L });
	public static final BitSet FOLLOW_IGNORE_SYM_in_alter_table_statement4731 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000080000000L });
	public static final BitSet FOLLOW_TABLE_in_alter_table_statement4735 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000040000L });
	public static final BitSet FOLLOW_table_name_in_alter_table_statement4737 = new BitSet(
			new long[] { 0x0200200020000002L, 0x0000038020C10000L,
					0x6001C7E6F8000030L, 0x00000000007FF66EL });
	public static final BitSet FOLLOW_alter_table_specification_in_alter_table_statement4742 = new BitSet(
			new long[] { 0x0010000000000002L, 0x0000000000000000L,
					0x0001000000000000L });
	public static final BitSet FOLLOW_COMMA_in_alter_table_statement4745 = new BitSet(
			new long[] { 0x0200200020000000L, 0x0000038020C10000L,
					0x6000C7E6F8000030L, 0x00000000007FF66EL });
	public static final BitSet FOLLOW_alter_table_specification_in_alter_table_statement4747 = new BitSet(
			new long[] { 0x0010000000000002L, 0x0000000000000000L,
					0x0001000000000000L });
	public static final BitSet FOLLOW_partition_options_in_alter_table_statement4757 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_table_options_in_alter_table_specification4779 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_ADD_SYM_in_alter_table_specification4786 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000000000L,
					0x8000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000040000L });
	public static final BitSet FOLLOW_COLUMN_SYM_in_alter_table_specification4790 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000040000L });
	public static final BitSet FOLLOW_column_name_in_alter_table_specification4794 = new BitSet(
			new long[] { 0x0000000000000000L, 0xFFF9800000020000L,
					0x000000000003FFCEL });
	public static final BitSet FOLLOW_column_definition_in_alter_table_specification4796 = new BitSet(
			new long[] { 0x0000000000000002L, 0x0000000000000000L,
					0x0000000800000000L, 0x0000000000000001L });
	public static final BitSet FOLLOW_set_in_alter_table_specification4800 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000040000L });
	public static final BitSet FOLLOW_column_name_in_alter_table_specification4806 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_ADD_SYM_in_alter_table_specification4818 = new BitSet(
			new long[] { 0x8000000000000000L, 0x0000000000000000L,
					0x8000000000000000L });
	public static final BitSet FOLLOW_COLUMN_SYM_in_alter_table_specification4822 = new BitSet(
			new long[] { 0x8000000000000000L });
	public static final BitSet FOLLOW_LPAREN_in_alter_table_specification4826 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000040000L });
	public static final BitSet FOLLOW_column_definitions_in_alter_table_specification4828 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000000001L });
	public static final BitSet FOLLOW_RPAREN_in_alter_table_specification4830 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_ADD_SYM_in_alter_table_specification4839 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000401000L });
	public static final BitSet FOLLOW_set_in_alter_table_specification4842 = new BitSet(
			new long[] { 0x8000000000000000L, 0x0000000000000080L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000040000L });
	public static final BitSet FOLLOW_index_name_in_alter_table_specification4849 = new BitSet(
			new long[] { 0x8000000000000000L, 0x0000000000000080L });
	public static final BitSet FOLLOW_index_type_in_alter_table_specification4854 = new BitSet(
			new long[] { 0x8000000000000000L });
	public static final BitSet FOLLOW_LPAREN_in_alter_table_specification4858 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000040000L });
	public static final BitSet FOLLOW_index_column_names_in_alter_table_specification4860 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000000001L });
	public static final BitSet FOLLOW_RPAREN_in_alter_table_specification4862 = new BitSet(
			new long[] { 0x0020000000000002L, 0x0000020000000080L,
					0x0000002000000000L });
	public static final BitSet FOLLOW_index_option_in_alter_table_specification4865 = new BitSet(
			new long[] { 0x0020000000000002L, 0x0000020000000080L,
					0x0000002000000000L });
	public static final BitSet FOLLOW_ADD_SYM_in_alter_table_specification4876 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000003000000000L });
	public static final BitSet FOLLOW_CONSTRAINT_in_alter_table_specification4880 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000002000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000040000L });
	public static final BitSet FOLLOW_constraint_symbol_name_in_alter_table_specification4883 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000002000000000L });
	public static final BitSet FOLLOW_PRIMARY_SYM_in_alter_table_specification4889 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000001000L });
	public static final BitSet FOLLOW_KEY_SYM_in_alter_table_specification4891 = new BitSet(
			new long[] { 0x8000000000000000L, 0x0000000000000080L });
	public static final BitSet FOLLOW_index_type_in_alter_table_specification4894 = new BitSet(
			new long[] { 0x8000000000000000L });
	public static final BitSet FOLLOW_LPAREN_in_alter_table_specification4898 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000040000L });
	public static final BitSet FOLLOW_index_column_names_in_alter_table_specification4900 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000000001L });
	public static final BitSet FOLLOW_RPAREN_in_alter_table_specification4902 = new BitSet(
			new long[] { 0x0020000000000002L, 0x0000020000000080L,
					0x0000002000000000L });
	public static final BitSet FOLLOW_index_option_in_alter_table_specification4905 = new BitSet(
			new long[] { 0x0020000000000002L, 0x0000020000000080L,
					0x0000002000000000L });
	public static final BitSet FOLLOW_ADD_SYM_in_alter_table_specification4922 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000001000080000L });
	public static final BitSet FOLLOW_CONSTRAINT_in_alter_table_specification4926 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000080000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000040000L });
	public static final BitSet FOLLOW_constraint_symbol_name_in_alter_table_specification4929 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000080000L });
	public static final BitSet FOLLOW_UNIQUE_SYM_in_alter_table_specification4935 = new BitSet(
			new long[] { 0x8000000000000000L, 0x0000000000401080L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000040000L });
	public static final BitSet FOLLOW_set_in_alter_table_specification4937 = new BitSet(
			new long[] { 0x8000000000000000L, 0x0000000000000080L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000040000L });
	public static final BitSet FOLLOW_index_name_in_alter_table_specification4945 = new BitSet(
			new long[] { 0x8000000000000000L, 0x0000000000000080L });
	public static final BitSet FOLLOW_index_type_in_alter_table_specification4953 = new BitSet(
			new long[] { 0x8000000000000000L });
	public static final BitSet FOLLOW_LPAREN_in_alter_table_specification4957 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000040000L });
	public static final BitSet FOLLOW_index_column_name_in_alter_table_specification4959 = new BitSet(
			new long[] { 0x0010000000000000L, 0x0000000000000001L });
	public static final BitSet FOLLOW_COMMA_in_alter_table_specification4962 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000040000L });
	public static final BitSet FOLLOW_index_column_name_in_alter_table_specification4964 = new BitSet(
			new long[] { 0x0010000000000000L, 0x0000000000000001L });
	public static final BitSet FOLLOW_RPAREN_in_alter_table_specification4968 = new BitSet(
			new long[] { 0x0020000000000002L, 0x0000020000000080L,
					0x0000002000000000L });
	public static final BitSet FOLLOW_index_option_in_alter_table_specification4971 = new BitSet(
			new long[] { 0x0020000000000002L, 0x0000020000000080L,
					0x0000002000000000L });
	public static final BitSet FOLLOW_ADD_SYM_in_alter_table_specification4984 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000100000L });
	public static final BitSet FOLLOW_FULLTEXT_SYM_in_alter_table_specification4987 = new BitSet(
			new long[] { 0x8000000000000000L, 0x0000000000401000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000040000L });
	public static final BitSet FOLLOW_set_in_alter_table_specification4989 = new BitSet(
			new long[] { 0x8000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000040000L });
	public static final BitSet FOLLOW_index_name_in_alter_table_specification4997 = new BitSet(
			new long[] { 0x8000000000000000L });
	public static final BitSet FOLLOW_LPAREN_in_alter_table_specification5001 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000040000L });
	public static final BitSet FOLLOW_index_column_names_in_alter_table_specification5003 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000000001L });
	public static final BitSet FOLLOW_RPAREN_in_alter_table_specification5005 = new BitSet(
			new long[] { 0x0020000000000002L, 0x0000020000000080L,
					0x0000002000000000L });
	public static final BitSet FOLLOW_index_option_in_alter_table_specification5008 = new BitSet(
			new long[] { 0x0020000000000002L, 0x0000020000000080L,
					0x0000002000000000L });
	public static final BitSet FOLLOW_ADD_SYM_in_alter_table_specification5019 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000200000L });
	public static final BitSet FOLLOW_SPATIAL_SYM_in_alter_table_specification5022 = new BitSet(
			new long[] { 0x8000000000000000L, 0x0000000000401000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000040000L });
	public static final BitSet FOLLOW_set_in_alter_table_specification5024 = new BitSet(
			new long[] { 0x8000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000040000L });
	public static final BitSet FOLLOW_index_name_in_alter_table_specification5032 = new BitSet(
			new long[] { 0x8000000000000000L });
	public static final BitSet FOLLOW_LPAREN_in_alter_table_specification5036 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000040000L });
	public static final BitSet FOLLOW_index_column_names_in_alter_table_specification5038 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000000001L });
	public static final BitSet FOLLOW_RPAREN_in_alter_table_specification5040 = new BitSet(
			new long[] { 0x0020000000000002L, 0x0000020000000080L,
					0x0000002000000000L });
	public static final BitSet FOLLOW_index_option_in_alter_table_specification5043 = new BitSet(
			new long[] { 0x0020000000000002L, 0x0000020000000080L,
					0x0000002000000000L });
	public static final BitSet FOLLOW_ADD_SYM_in_alter_table_specification5054 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000005000000000L });
	public static final BitSet FOLLOW_CONSTRAINT_in_alter_table_specification5058 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000004000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000040000L });
	public static final BitSet FOLLOW_constraint_symbol_name_in_alter_table_specification5061 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000004000000000L });
	public static final BitSet FOLLOW_FOREIGN_in_alter_table_specification5067 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000001000L });
	public static final BitSet FOLLOW_KEY_SYM_in_alter_table_specification5069 = new BitSet(
			new long[] { 0x8000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000040000L });
	public static final BitSet FOLLOW_index_name_in_alter_table_specification5072 = new BitSet(
			new long[] { 0x8000000000000000L });
	public static final BitSet FOLLOW_LPAREN_in_alter_table_specification5076 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000040000L });
	public static final BitSet FOLLOW_index_column_names_in_alter_table_specification5078 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000000001L });
	public static final BitSet FOLLOW_RPAREN_in_alter_table_specification5080 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000000000L,
					0x0000000000040000L });
	public static final BitSet FOLLOW_reference_definition_in_alter_table_specification5082 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_ALGORITHM_SYM_in_alter_table_specification5091 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000003012000L });
	public static final BitSet FOLLOW_EQ_SYM_in_alter_table_specification5094 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000003010000L });
	public static final BitSet FOLLOW_set_in_alter_table_specification5098 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_ALTER_in_alter_table_specification5113 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000000000L,
					0x8000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000040000L });
	public static final BitSet FOLLOW_COLUMN_SYM_in_alter_table_specification5116 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000040000L });
	public static final BitSet FOLLOW_column_name_in_alter_table_specification5120 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000020020000L });
	public static final BitSet FOLLOW_SET_SYM_in_alter_table_specification5124 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000010000L });
	public static final BitSet FOLLOW_DEFAULT_in_alter_table_specification5126 = new BitSet(
			new long[] { 0x0080000000000000L, 0x0000440000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0001FC0000000000L });
	public static final BitSet FOLLOW_literal_value_in_alter_table_specification5128 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_DROP_in_alter_table_specification5134 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000010000L });
	public static final BitSet FOLLOW_DEFAULT_in_alter_table_specification5136 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_CHANGE_in_alter_table_specification5147 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000000000L,
					0x8000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000040000L });
	public static final BitSet FOLLOW_COLUMN_SYM_in_alter_table_specification5150 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000040000L });
	public static final BitSet FOLLOW_column_name_in_alter_table_specification5154 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000040000L });
	public static final BitSet FOLLOW_column_name_in_alter_table_specification5156 = new BitSet(
			new long[] { 0x0000000000000000L, 0xFFF9800000020000L,
					0x000000000003FFCEL });
	public static final BitSet FOLLOW_column_definition_in_alter_table_specification5158 = new BitSet(
			new long[] { 0x0000000000000002L, 0x0000000000000000L,
					0x0000000800000000L, 0x0000000000000001L });
	public static final BitSet FOLLOW_FIRST_SYM_in_alter_table_specification5161 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_AFTER_SYM_in_alter_table_specification5163 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000040000L });
	public static final BitSet FOLLOW_column_name_in_alter_table_specification5165 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_LOCK_in_alter_table_specification5176 = new BitSet(
			new long[] { 0x0000000000000000L, 0x000000001C012000L });
	public static final BitSet FOLLOW_EQ_SYM_in_alter_table_specification5179 = new BitSet(
			new long[] { 0x0000000000000000L, 0x000000001C010000L });
	public static final BitSet FOLLOW_set_in_alter_table_specification5183 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_MODIFY_SYM_in_alter_table_specification5200 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000000000L,
					0x8000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000040000L });
	public static final BitSet FOLLOW_COLUMN_SYM_in_alter_table_specification5204 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000040000L });
	public static final BitSet FOLLOW_column_name_in_alter_table_specification5208 = new BitSet(
			new long[] { 0x0000000000000000L, 0xFFF9800000020000L,
					0x000000000003FFCEL });
	public static final BitSet FOLLOW_column_definition_in_alter_table_specification5210 = new BitSet(
			new long[] { 0x0000000000000002L, 0x0000000000000000L,
					0x0000000800000000L, 0x0000000000000001L });
	public static final BitSet FOLLOW_FIRST_SYM_in_alter_table_specification5213 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_AFTER_SYM_in_alter_table_specification5217 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000040000L });
	public static final BitSet FOLLOW_column_name_in_alter_table_specification5219 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_DROP_in_alter_table_specification5230 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000000000L,
					0x8000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000040000L });
	public static final BitSet FOLLOW_COLUMN_SYM_in_alter_table_specification5234 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000040000L });
	public static final BitSet FOLLOW_column_name_in_alter_table_specification5238 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_DROP_in_alter_table_specification5247 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000002000000000L });
	public static final BitSet FOLLOW_PRIMARY_SYM_in_alter_table_specification5250 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000001000L });
	public static final BitSet FOLLOW_KEY_SYM_in_alter_table_specification5252 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_DROP_in_alter_table_specification5261 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000401000L });
	public static final BitSet FOLLOW_set_in_alter_table_specification5264 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000040000L });
	public static final BitSet FOLLOW_index_name_in_alter_table_specification5270 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_DROP_in_alter_table_specification5279 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000004000000000L });
	public static final BitSet FOLLOW_FOREIGN_in_alter_table_specification5282 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000001000L });
	public static final BitSet FOLLOW_KEY_SYM_in_alter_table_specification5284 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000040000L });
	public static final BitSet FOLLOW_foreign_key_symbol_name_in_alter_table_specification5286 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_DISABLE_SYM_in_alter_table_specification5295 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000010L });
	public static final BitSet FOLLOW_KEYS_in_alter_table_specification5297 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_ENABLE_SYM_in_alter_table_specification5306 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000010L });
	public static final BitSet FOLLOW_KEYS_in_alter_table_specification5308 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_RENAME_in_alter_table_specification5317 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000180L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000040000L });
	public static final BitSet FOLLOW_TO_SYM_in_alter_table_specification5321 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000040000L });
	public static final BitSet FOLLOW_AS_SYM_in_alter_table_specification5324 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000040000L });
	public static final BitSet FOLLOW_table_name_in_alter_table_specification5329 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_ORDER_SYM_in_alter_table_specification5338 = new BitSet(
			new long[] { 0x0008000000000000L });
	public static final BitSet FOLLOW_BY_SYM_in_alter_table_specification5340 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000040000L });
	public static final BitSet FOLLOW_column_name_in_alter_table_specification5342 = new BitSet(
			new long[] { 0x0010000000000002L });
	public static final BitSet FOLLOW_COMMA_in_alter_table_specification5345 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000040000L });
	public static final BitSet FOLLOW_column_name_in_alter_table_specification5347 = new BitSet(
			new long[] { 0x0010000000000002L });
	public static final BitSet FOLLOW_CONVERT_SYM_in_alter_table_specification5358 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000080L });
	public static final BitSet FOLLOW_TO_SYM_in_alter_table_specification5360 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000010L });
	public static final BitSet FOLLOW_CHARACTER_SYM_in_alter_table_specification5362 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000020000L });
	public static final BitSet FOLLOW_SET_SYM_in_alter_table_specification5364 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000080L, 0xFFFFE00000000000L,
					0x000000000000FFFFL });
	public static final BitSet FOLLOW_charset_name_in_alter_table_specification5366 = new BitSet(
			new long[] { 0x0000000000000002L, 0x0000000000000000L,
					0x0000000000000020L });
	public static final BitSet FOLLOW_COLLATE_SYM_in_alter_table_specification5369 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000040000L });
	public static final BitSet FOLLOW_collation_name_in_alter_table_specification5371 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_DEFAULT_in_alter_table_specification5383 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000010L });
	public static final BitSet FOLLOW_CHARACTER_SYM_in_alter_table_specification5387 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000020000L });
	public static final BitSet FOLLOW_SET_SYM_in_alter_table_specification5389 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000002000L,
					0x0000000000000080L, 0xFFFFE00000000000L,
					0x000000000000FFFFL });
	public static final BitSet FOLLOW_EQ_SYM_in_alter_table_specification5392 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000080L, 0xFFFFE00000000000L,
					0x000000000000FFFFL });
	public static final BitSet FOLLOW_charset_name_in_alter_table_specification5396 = new BitSet(
			new long[] { 0x0000000000000002L, 0x0000000000000000L,
					0x0000000000000020L });
	public static final BitSet FOLLOW_COLLATE_SYM_in_alter_table_specification5399 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000002000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000040000L });
	public static final BitSet FOLLOW_EQ_SYM_in_alter_table_specification5402 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000040000L });
	public static final BitSet FOLLOW_collation_name_in_alter_table_specification5406 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_DISCARD_in_alter_table_specification5417 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000800L });
	public static final BitSet FOLLOW_TABLESPACE_in_alter_table_specification5419 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_IMPORT_in_alter_table_specification5428 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000800L });
	public static final BitSet FOLLOW_TABLESPACE_in_alter_table_specification5430 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_FORCE_SYM_in_alter_table_specification5439 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_ADD_SYM_in_alter_table_specification5448 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000000000L,
					0x0001000000000000L });
	public static final BitSet FOLLOW_PARTITION_SYM_in_alter_table_specification5450 = new BitSet(
			new long[] { 0x8000000000000000L });
	public static final BitSet FOLLOW_LPAREN_in_alter_table_specification5452 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000000000L,
					0x0001000000000000L });
	public static final BitSet FOLLOW_partition_definition_in_alter_table_specification5454 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000000001L });
	public static final BitSet FOLLOW_RPAREN_in_alter_table_specification5456 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_DROP_in_alter_table_specification5465 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000000000L,
					0x0001000000000000L });
	public static final BitSet FOLLOW_PARTITION_SYM_in_alter_table_specification5467 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000040000L });
	public static final BitSet FOLLOW_partition_names_in_alter_table_specification5469 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_TRUNCATE_in_alter_table_specification5478 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000000000L,
					0x0001000000000000L });
	public static final BitSet FOLLOW_PARTITION_SYM_in_alter_table_specification5480 = new BitSet(
			new long[] { 0x0000000040000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000040000L });
	public static final BitSet FOLLOW_partition_names_in_alter_table_specification5483 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_ALL_in_alter_table_specification5487 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_COALESCE_in_alter_table_specification5497 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000000000L,
					0x0001000000000000L });
	public static final BitSet FOLLOW_PARTITION_SYM_in_alter_table_specification5499 = new BitSet(
			new long[] { 0x0080000000000000L });
	public static final BitSet FOLLOW_INTEGER_NUM_in_alter_table_specification5501 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_REORGANIZE_SYM_in_alter_table_specification5510 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000000000L,
					0x0001000000000000L });
	public static final BitSet FOLLOW_PARTITION_SYM_in_alter_table_specification5512 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000040000L });
	public static final BitSet FOLLOW_partition_names_in_alter_table_specification5514 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000000200L });
	public static final BitSet FOLLOW_INTO_in_alter_table_specification5516 = new BitSet(
			new long[] { 0x8000000000000000L });
	public static final BitSet FOLLOW_LPAREN_in_alter_table_specification5518 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000000000L,
					0x0001000000000000L });
	public static final BitSet FOLLOW_partition_definition_in_alter_table_specification5520 = new BitSet(
			new long[] { 0x0010000000000000L, 0x0000000000000001L });
	public static final BitSet FOLLOW_COMMA_in_alter_table_specification5523 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000000000L,
					0x0001000000000000L });
	public static final BitSet FOLLOW_partition_definition_in_alter_table_specification5525 = new BitSet(
			new long[] { 0x0010000000000000L, 0x0000000000000001L });
	public static final BitSet FOLLOW_RPAREN_in_alter_table_specification5529 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_EXCHANGE_SYM_in_alter_table_specification5538 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000000000L,
					0x0001000000000000L });
	public static final BitSet FOLLOW_PARTITION_SYM_in_alter_table_specification5540 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000040000L });
	public static final BitSet FOLLOW_partition_name_in_alter_table_specification5542 = new BitSet(
			new long[] { 0x0020000000000000L });
	public static final BitSet FOLLOW_WITH_in_alter_table_specification5544 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000080000000L });
	public static final BitSet FOLLOW_TABLE_in_alter_table_specification5546 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000040000L });
	public static final BitSet FOLLOW_table_name_in_alter_table_specification5548 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_ANALYZE_SYM_in_alter_table_specification5557 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000000000L,
					0x0001000000000000L });
	public static final BitSet FOLLOW_PARTITION_SYM_in_alter_table_specification5559 = new BitSet(
			new long[] { 0x0000000040000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000040000L });
	public static final BitSet FOLLOW_partition_names_in_alter_table_specification5562 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_ALL_in_alter_table_specification5566 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_CHECK_SYM_in_alter_table_specification5576 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000000000L,
					0x0001000000000000L });
	public static final BitSet FOLLOW_PARTITION_SYM_in_alter_table_specification5578 = new BitSet(
			new long[] { 0x0000000040000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000040000L });
	public static final BitSet FOLLOW_partition_names_in_alter_table_specification5581 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_ALL_in_alter_table_specification5585 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_OPTIMIZE_in_alter_table_specification5595 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000000000L,
					0x0001000000000000L });
	public static final BitSet FOLLOW_PARTITION_SYM_in_alter_table_specification5597 = new BitSet(
			new long[] { 0x0000000040000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000040000L });
	public static final BitSet FOLLOW_partition_names_in_alter_table_specification5600 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_ALL_in_alter_table_specification5604 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_REBUILD_SYM_in_alter_table_specification5614 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000000000L,
					0x0001000000000000L });
	public static final BitSet FOLLOW_PARTITION_SYM_in_alter_table_specification5616 = new BitSet(
			new long[] { 0x0000000040000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000040000L });
	public static final BitSet FOLLOW_partition_names_in_alter_table_specification5619 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_ALL_in_alter_table_specification5623 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_REPAIR_in_alter_table_specification5633 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000000000L,
					0x0001000000000000L });
	public static final BitSet FOLLOW_PARTITION_SYM_in_alter_table_specification5635 = new BitSet(
			new long[] { 0x0000000040000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000040000L });
	public static final BitSet FOLLOW_partition_names_in_alter_table_specification5638 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_ALL_in_alter_table_specification5642 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_REMOVE_SYM_in_alter_table_specification5652 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000800000L });
	public static final BitSet FOLLOW_PARTITIONING_SYM_in_alter_table_specification5654 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_index_column_name_in_index_column_names5664 = new BitSet(
			new long[] { 0x0010000000000002L });
	public static final BitSet FOLLOW_COMMA_in_index_column_names5667 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000040000L });
	public static final BitSet FOLLOW_index_column_name_in_index_column_names5669 = new BitSet(
			new long[] { 0x0010000000000002L });
	public static final BitSet FOLLOW_USING_SYM_in_index_type5678 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000000000L,
					0x0004000000000000L, 0x0000000001000000L });
	public static final BitSet FOLLOW_set_in_index_type5680 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_KEY_BLOCK_SIZE_in_index_option5698 = new BitSet(
			new long[] { 0x0080000000000000L, 0x0000000000002000L });
	public static final BitSet FOLLOW_EQ_SYM_in_index_option5701 = new BitSet(
			new long[] { 0x0080000000000000L });
	public static final BitSet FOLLOW_INTEGER_NUM_in_index_option5705 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_index_type_in_index_option5712 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_WITH_in_index_option5719 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000002000000L });
	public static final BitSet FOLLOW_PARSER_SYM_in_index_option5721 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000040000L });
	public static final BitSet FOLLOW_parser_name_in_index_option5723 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_COMMENT_SYM_in_index_option5732 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000040000000000L });
	public static final BitSet FOLLOW_TEXT_STRING_in_index_option5734 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_column_name_in_column_definitions5744 = new BitSet(
			new long[] { 0x0000000000000000L, 0xFFF9800000020000L,
					0x000000000003FFCEL });
	public static final BitSet FOLLOW_column_definition_in_column_definitions5746 = new BitSet(
			new long[] { 0x0010000000000002L });
	public static final BitSet FOLLOW_COMMA_in_column_definitions5749 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000040000L });
	public static final BitSet FOLLOW_column_name_in_column_definitions5751 = new BitSet(
			new long[] { 0x0000000000000000L, 0xFFF9800000020000L,
					0x000000000003FFCEL });
	public static final BitSet FOLLOW_column_definition_in_column_definitions5753 = new BitSet(
			new long[] { 0x0010000000000002L });
	public static final BitSet FOLLOW_RENAME_in_rename_table_statement5766 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000080000000L });
	public static final BitSet FOLLOW_TABLE_in_rename_table_statement5768 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000040000L });
	public static final BitSet FOLLOW_table_name_in_rename_table_statement5772 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000080L });
	public static final BitSet FOLLOW_TO_SYM_in_rename_table_statement5774 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000040000L });
	public static final BitSet FOLLOW_table_name_in_rename_table_statement5776 = new BitSet(
			new long[] { 0x0010000000000002L });
	public static final BitSet FOLLOW_COMMA_in_rename_table_statement5780 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000040000L });
	public static final BitSet FOLLOW_table_name_in_rename_table_statement5782 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000080L });
	public static final BitSet FOLLOW_TO_SYM_in_rename_table_statement5784 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000040000L });
	public static final BitSet FOLLOW_table_name_in_rename_table_statement5786 = new BitSet(
			new long[] { 0x0010000000000002L });
	public static final BitSet FOLLOW_DROP_in_drop_table_statement5814 = new BitSet(
			new long[] { 0x0000000000000000L, 0x00000000C0000000L });
	public static final BitSet FOLLOW_TEMPORARY_in_drop_table_statement5817 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000080000000L });
	public static final BitSet FOLLOW_TABLE_in_drop_table_statement5821 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000100000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000040000L });
	public static final BitSet FOLLOW_IF_in_drop_table_statement5824 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000400000000L });
	public static final BitSet FOLLOW_EXISTS_in_drop_table_statement5826 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000040000L });
	public static final BitSet FOLLOW_table_name_in_drop_table_statement5831 = new BitSet(
			new long[] { 0x0010000000000002L, 0x0000000000000000L,
					0x0000000001800000L });
	public static final BitSet FOLLOW_COMMA_in_drop_table_statement5834 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000040000L });
	public static final BitSet FOLLOW_table_name_in_drop_table_statement5836 = new BitSet(
			new long[] { 0x0010000000000002L, 0x0000000000000000L,
					0x0000000001800000L });
	public static final BitSet FOLLOW_RESTRICT_in_drop_table_statement5842 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_CASCADE_in_drop_table_statement5846 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_TRUNCATE_in_truncate_table_statement5869 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000080000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000040000L });
	public static final BitSet FOLLOW_TABLE_in_truncate_table_statement5872 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000040000L });
	public static final BitSet FOLLOW_table_name_in_truncate_table_statement5876 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_CREATE_in_create_view_statement5893 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000800000L,
					0x0000000000000000L, 0x0000001284000000L });
	public static final BitSet FOLLOW_OR_SYM_in_create_view_statement5896 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000008000000L });
	public static final BitSet FOLLOW_REPLACE_in_create_view_statement5898 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000800000L,
					0x0000000000000000L, 0x0000001284000000L });
	public static final BitSet FOLLOW_create_view_body_in_create_view_statement5903 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_ALGORITHM_SYM_in_create_view_body5912 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000002000L });
	public static final BitSet FOLLOW_EQ_SYM_in_create_view_body5914 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000070000000L });
	public static final BitSet FOLLOW_UNDEFINED_SYM_in_create_view_body5917 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000001280000000L });
	public static final BitSet FOLLOW_MERGE_SYM_in_create_view_body5921 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000001280000000L });
	public static final BitSet FOLLOW_TEMPTABLE_SYM_in_create_view_body5925 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000001280000000L });
	public static final BitSet FOLLOW_DEFINER_in_create_view_body5932 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000002000L });
	public static final BitSet FOLLOW_EQ_SYM_in_create_view_body5934 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000100000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000040000L });
	public static final BitSet FOLLOW_user_name_in_create_view_body5937 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000001200000000L });
	public static final BitSet FOLLOW_CURRENT_USER_in_create_view_body5941 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000001200000000L });
	public static final BitSet FOLLOW_SQL_SYM_in_create_view_body5949 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000400000000L });
	public static final BitSet FOLLOW_SECURITY_SYM_in_create_view_body5951 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000880000000L });
	public static final BitSet FOLLOW_DEFINER_in_create_view_body5955 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000001000000000L });
	public static final BitSet FOLLOW_INVOKER_SYM_in_create_view_body5959 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000001000000000L });
	public static final BitSet FOLLOW_VIEW_SYM_in_create_view_body5966 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000040000L });
	public static final BitSet FOLLOW_view_name_in_create_view_body5968 = new BitSet(
			new long[] { 0x8000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000100L });
	public static final BitSet FOLLOW_LPAREN_in_create_view_body5971 = new BitSet(
			new long[] { 0x8000000000000000L });
	public static final BitSet FOLLOW_column_list_in_create_view_body5973 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000000001L });
	public static final BitSet FOLLOW_RPAREN_in_create_view_body5975 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000100L });
	public static final BitSet FOLLOW_AS_SYM_in_create_view_body5980 = new BitSet(
			new long[] { 0x0000000080000000L });
	public static final BitSet FOLLOW_select_statement_in_create_view_body5982 = new BitSet(
			new long[] { 0x0020000000000002L });
	public static final BitSet FOLLOW_WITH_in_create_view_body5986 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000008000000000L,
					0x0000000000000000L, 0x0000006000000000L });
	public static final BitSet FOLLOW_CASCADED_in_create_view_body5989 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000008000000000L });
	public static final BitSet FOLLOW_LOCAL_SYM_in_create_view_body5993 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000008000000000L });
	public static final BitSet FOLLOW_CHECK_SYM_in_create_view_body5997 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000008000000000L });
	public static final BitSet FOLLOW_OPTION_in_create_view_body5999 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_ALTER_in_alter_view_statement6038 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000800000L,
					0x0000000000000000L, 0x0000001284000000L });
	public static final BitSet FOLLOW_create_view_body_in_alter_view_statement6041 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_DROP_in_drop_view_statement6059 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000001000000000L });
	public static final BitSet FOLLOW_VIEW_SYM_in_drop_view_statement6061 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000100000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000040000L });
	public static final BitSet FOLLOW_IF_in_drop_view_statement6064 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000400000000L });
	public static final BitSet FOLLOW_EXISTS_in_drop_view_statement6066 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000040000L });
	public static final BitSet FOLLOW_view_name_in_drop_view_statement6071 = new BitSet(
			new long[] { 0x0010000000000002L, 0x0000000000000000L,
					0x0000000001800000L });
	public static final BitSet FOLLOW_COMMA_in_drop_view_statement6074 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000040000L });
	public static final BitSet FOLLOW_view_name_in_drop_view_statement6076 = new BitSet(
			new long[] { 0x0010000000000002L, 0x0000000000000000L,
					0x0000000001800000L });
	public static final BitSet FOLLOW_RESTRICT_in_drop_view_statement6082 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_CASCADE_in_drop_view_statement6086 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_set_in_relational_op0 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_set_in_charset_name0 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_BINARY_in_cast_data_type6323 = new BitSet(
			new long[] { 0x0080000000000002L });
	public static final BitSet FOLLOW_INTEGER_NUM_in_cast_data_type6326 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_CHAR_in_cast_data_type6334 = new BitSet(
			new long[] { 0x0080000000000002L });
	public static final BitSet FOLLOW_INTEGER_NUM_in_cast_data_type6337 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_DATE_SYM_in_cast_data_type6345 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_DATETIME_in_cast_data_type6350 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_DECIMAL_SYM_in_cast_data_type6356 = new BitSet(
			new long[] { 0x0080000000000002L });
	public static final BitSet FOLLOW_INTEGER_NUM_in_cast_data_type6360 = new BitSet(
			new long[] { 0x0010000000000002L });
	public static final BitSet FOLLOW_COMMA_in_cast_data_type6363 = new BitSet(
			new long[] { 0x0080000000000000L });
	public static final BitSet FOLLOW_INTEGER_NUM_in_cast_data_type6365 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_SIGNED_SYM_in_cast_data_type6375 = new BitSet(
			new long[] { 0x0000000000000002L, 0x0040000000000000L });
	public static final BitSet FOLLOW_INTEGER_SYM_in_cast_data_type6378 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_TIME_SYM_in_cast_data_type6385 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_UNSIGNED_SYM_in_cast_data_type6390 = new BitSet(
			new long[] { 0x0000000000000002L, 0x0040000000000000L });
	public static final BitSet FOLLOW_INTEGER_SYM_in_cast_data_type6393 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_IN_SYM_in_search_modifier6406 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000020000L });
	public static final BitSet FOLLOW_NATURAL_in_search_modifier6408 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000040000L });
	public static final BitSet FOLLOW_LANGUAGE_in_search_modifier6410 = new BitSet(
			new long[] { 0x0001000000000000L });
	public static final BitSet FOLLOW_MODE_SYM_in_search_modifier6412 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_IN_SYM_in_search_modifier6419 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000020000L });
	public static final BitSet FOLLOW_NATURAL_in_search_modifier6421 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000040000L });
	public static final BitSet FOLLOW_LANGUAGE_in_search_modifier6423 = new BitSet(
			new long[] { 0x0001000000000000L });
	public static final BitSet FOLLOW_MODE_SYM_in_search_modifier6425 = new BitSet(
			new long[] { 0x0020000000000000L });
	public static final BitSet FOLLOW_WITH_in_search_modifier6427 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000080000L });
	public static final BitSet FOLLOW_QUERY_SYM_in_search_modifier6429 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000100000L });
	public static final BitSet FOLLOW_EXPANSION_SYM_in_search_modifier6431 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_IN_SYM_in_search_modifier6438 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000200000L });
	public static final BitSet FOLLOW_BOOLEAN_SYM_in_search_modifier6440 = new BitSet(
			new long[] { 0x0001000000000000L });
	public static final BitSet FOLLOW_MODE_SYM_in_search_modifier6442 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_WITH_in_search_modifier6449 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000080000L });
	public static final BitSet FOLLOW_QUERY_SYM_in_search_modifier6451 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000100000L });
	public static final BitSet FOLLOW_EXPANSION_SYM_in_search_modifier6453 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_set_in_transcoding_name0 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_set_in_interval_unit0 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_set_in_collation_names0 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_TEXT_STRING_in_string_literal6599 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_set_in_number_literal6607 = new BitSet(
			new long[] { 0x0080000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000100000000000L });
	public static final BitSet FOLLOW_set_in_number_literal6616 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_HEX_DIGIT_in_hex_literal6631 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_set_in_boolean_literal0 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_BIT_NUM_in_bit_literal6649 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_string_literal_in_literal_value6667 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_number_literal_in_literal_value6671 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_hex_literal_in_literal_value6675 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_boolean_literal_in_literal_value6679 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_bit_literal_in_literal_value6683 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_NULL_SYM_in_literal_value6687 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_number_functions_in_functionList6705 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_char_functions_in_functionList6711 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_time_functions_in_functionList6717 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_other_functions_in_functionList6722 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_set_in_number_functions0 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_set_in_char_functions0 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_set_in_time_functions0 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_set_in_other_functions0 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_set_in_group_functions0 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_ID_in_schema_name7647 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_ID_in_table_name7654 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_ID_in_engine_name7661 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_ID_in_column_name7668 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_ID_in_view_name7675 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_ID_in_parser_name7682 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_ID_in_index_name7689 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_ID_in_partition_name7696 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_ID_in_partition_logical_name7705 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_ID_in_constraint_symbol_name7712 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_ID_in_foreign_key_symbol_name7719 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_ID_in_collation_name7727 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_ID_in_event_name7735 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_ID_in_user_name7743 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_ID_in_function_name7751 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_ID_in_procedure_name7759 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_ID_in_server_name7767 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_ID_in_wrapper_name7775 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_AS_SYM_in_alias7786 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000040000L });
	public static final BitSet FOLLOW_ID_in_alias7791 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_exp_factor1_in_expression7808 = new BitSet(
			new long[] { 0x0000000000000002L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000004000000L });
	public static final BitSet FOLLOW_OR_SYM_in_expression7812 = new BitSet(
			new long[] { 0x8080000000000000L, 0xE000440700014100L,
					0x000002000008008CL, 0x0000400108004200L,
					0xFFFFFC001DC00000L, 0xFFFFFFFFFFFFFFFFL,
					0xFFFFFFFFFFFFFFFFL, 0x0000041F0007FFFFL });
	public static final BitSet FOLLOW_exp_factor1_in_expression7815 = new BitSet(
			new long[] { 0x0000000000000002L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000004000000L });
	public static final BitSet FOLLOW_exp_factor2_in_exp_factor17825 = new BitSet(
			new long[] { 0x0000000000000002L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000080000L });
	public static final BitSet FOLLOW_XOR_in_exp_factor17829 = new BitSet(
			new long[] { 0x8080000000000000L, 0xE000440700014100L,
					0x000002000008008CL, 0x0000400108004200L,
					0xFFFFFC001DC00000L, 0xFFFFFFFFFFFFFFFFL,
					0xFFFFFFFFFFFFFFFFL, 0x0000041F0007FFFFL });
	public static final BitSet FOLLOW_exp_factor2_in_exp_factor17832 = new BitSet(
			new long[] { 0x0000000000000002L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000080000L });
	public static final BitSet FOLLOW_exp_factor3_in_exp_factor27842 = new BitSet(
			new long[] { 0x0000000000000002L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000100000L });
	public static final BitSet FOLLOW_AND_SYM_in_exp_factor27846 = new BitSet(
			new long[] { 0x8080000000000000L, 0xE000440700014100L,
					0x000002000008008CL, 0x0000400108004200L,
					0xFFFFFC001DC00000L, 0xFFFFFFFFFFFFFFFFL,
					0xFFFFFFFFFFFFFFFFL, 0x0000041F0007FFFFL });
	public static final BitSet FOLLOW_exp_factor3_in_exp_factor27849 = new BitSet(
			new long[] { 0x0000000000000002L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000100000L });
	public static final BitSet FOLLOW_NOT_SYM_in_exp_factor37860 = new BitSet(
			new long[] { 0x8080000000000000L, 0xE000440700014100L,
					0x000002000008008CL, 0x0000400108004200L,
					0xFFFFFC001DC00000L, 0xFFFFFFFFFFFFFFFFL,
					0xFFFFFFFFFFFFFFFFL, 0x0000041F0007FFFFL });
	public static final BitSet FOLLOW_exp_factor4_in_exp_factor37865 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_bool_primary_in_exp_factor47872 = new BitSet(
			new long[] { 0x0000000000000002L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000200000L });
	public static final BitSet FOLLOW_IS_SYM_in_exp_factor47876 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000400200000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000C00000000000L });
	public static final BitSet FOLLOW_NOT_SYM_in_exp_factor47880 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000400000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000C00000000000L });
	public static final BitSet FOLLOW_boolean_literal_in_exp_factor47886 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_NULL_SYM_in_exp_factor47888 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_predicate_in_bool_primary7904 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000002000L,
					0x0000000000000000L, 0x00001F0000000000L });
	public static final BitSet FOLLOW_relational_op_in_bool_primary7906 = new BitSet(
			new long[] { 0x8080000000000000L, 0xE000440500014100L,
					0x000002000008008CL, 0x0000400108004200L,
					0xFFFFFC001DC00000L, 0xFFFFFFFFFFFFFFFFL,
					0xFFFFFFFFFFFFFFFFL, 0x0000041F0007FFFFL });
	public static final BitSet FOLLOW_predicate_in_bool_primary7908 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_predicate_in_bool_primary7926 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000002000L,
					0x0000000000000000L, 0x00001F0000000000L });
	public static final BitSet FOLLOW_relational_op_in_bool_primary7928 = new BitSet(
			new long[] { 0x8000000040000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000400000L });
	public static final BitSet FOLLOW_ALL_in_bool_primary7933 = new BitSet(
			new long[] { 0x8000000000000000L });
	public static final BitSet FOLLOW_ANY_in_bool_primary7938 = new BitSet(
			new long[] { 0x8000000000000000L });
	public static final BitSet FOLLOW_subquery_in_bool_primary7944 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_NOT_SYM_in_bool_primary7954 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000400000000L });
	public static final BitSet FOLLOW_EXISTS_in_bool_primary7959 = new BitSet(
			new long[] { 0x8000000000000000L });
	public static final BitSet FOLLOW_subquery_in_bool_primary7962 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_predicate_in_bool_primary7970 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_bit_expr_in_predicate7983 = new BitSet(
			new long[] { 0x0000400000000000L, 0x0000000200000000L });
	public static final BitSet FOLLOW_NOT_SYM_in_predicate7986 = new BitSet(
			new long[] { 0x0000400000000000L });
	public static final BitSet FOLLOW_IN_SYM_in_predicate7991 = new BitSet(
			new long[] { 0x8000000000000000L });
	public static final BitSet FOLLOW_subquery_in_predicate7995 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_expression_list_in_predicate7999 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_bit_expr_in_predicate8009 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000200000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000800000L });
	public static final BitSet FOLLOW_NOT_SYM_in_predicate8012 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000800000L });
	public static final BitSet FOLLOW_BETWEEN_in_predicate8017 = new BitSet(
			new long[] { 0x8080000000000000L, 0xE000440500014100L,
					0x000002000008008CL, 0x0000400108004200L,
					0xFFFFFC001DC00000L, 0xFFFFFFFFFFFFFFFFL,
					0xFFFFFFFFFFFFFFFFL, 0x0000041F0007FFFFL });
	public static final BitSet FOLLOW_bit_expr_in_predicate8020 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000100000L });
	public static final BitSet FOLLOW_AND_SYM_in_predicate8022 = new BitSet(
			new long[] { 0x8080000000000000L, 0xE000440500014100L,
					0x000002000008008CL, 0x0000400108004200L,
					0xFFFFFC001DC00000L, 0xFFFFFFFFFFFFFFFFL,
					0xFFFFFFFFFFFFFFFFL, 0x0000041F0007FFFFL });
	public static final BitSet FOLLOW_predicate_in_predicate8025 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_bit_expr_in_predicate8035 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000001000000L });
	public static final BitSet FOLLOW_SOUNDS_SYM_in_predicate8037 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000800000000L });
	public static final BitSet FOLLOW_LIKE_SYM_in_predicate8040 = new BitSet(
			new long[] { 0x8080000000000000L, 0xE000440500014100L,
					0x000002000008008CL, 0x0000400108004200L,
					0xFFFFFC001DC00000L, 0xFFFFFFFFFFFFFFFFL,
					0xFFFFFFFFFFFFFFFFL, 0x0000041F0007FFFFL });
	public static final BitSet FOLLOW_bit_expr_in_predicate8043 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_bit_expr_in_predicate8053 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000A00000000L });
	public static final BitSet FOLLOW_NOT_SYM_in_predicate8056 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000800000000L });
	public static final BitSet FOLLOW_LIKE_SYM_in_predicate8061 = new BitSet(
			new long[] { 0x8080000000000000L, 0xE000440500014100L,
					0x000002000008008CL, 0x0000400108004200L,
					0xFFFFFC001DC00000L, 0xFFFFFFFFFFFFFFFFL,
					0xFFFFFFFFFFFFFFFFL, 0x0000041F0007FFFFL });
	public static final BitSet FOLLOW_simple_expr_in_predicate8064 = new BitSet(
			new long[] { 0x0000000000000002L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000002000000L });
	public static final BitSet FOLLOW_ESCAPE_SYM_in_predicate8067 = new BitSet(
			new long[] { 0x8080000000000000L, 0xE000440500014100L,
					0x000002000008008CL, 0x0000400108004200L,
					0xFFFFFC001DC00000L, 0xFFFFFFFFFFFFFFFFL,
					0xFFFFFFFFFFFFFFFFL, 0x0000041F0007FFFFL });
	public static final BitSet FOLLOW_simple_expr_in_predicate8070 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_bit_expr_in_predicate8081 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000200000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000004000000L });
	public static final BitSet FOLLOW_NOT_SYM_in_predicate8084 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000004000000L });
	public static final BitSet FOLLOW_REGEXP_in_predicate8089 = new BitSet(
			new long[] { 0x8080000000000000L, 0xE000440500014100L,
					0x000002000008008CL, 0x0000400108004200L,
					0xFFFFFC001DC00000L, 0xFFFFFFFFFFFFFFFFL,
					0xFFFFFFFFFFFFFFFFL, 0x0000041F0007FFFFL });
	public static final BitSet FOLLOW_bit_expr_in_predicate8092 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_bit_expr_in_predicate8102 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_factor1_in_bit_expr8115 = new BitSet(
			new long[] { 0x0000000000000002L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000008000000L });
	public static final BitSet FOLLOW_VERTBAR_in_bit_expr8119 = new BitSet(
			new long[] { 0x8080000000000000L, 0xE000440500014100L,
					0x000002000008008CL, 0x0000400108004200L,
					0xFFFFFC001DC00000L, 0xFFFFFFFFFFFFFFFFL,
					0xFFFFFFFFFFFFFFFFL, 0x0000041F0007FFFFL });
	public static final BitSet FOLLOW_factor1_in_bit_expr8122 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_factor2_in_factor18133 = new BitSet(
			new long[] { 0x0000000000000002L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000010000000L });
	public static final BitSet FOLLOW_BITAND_in_factor18137 = new BitSet(
			new long[] { 0x8080000000000000L, 0xE000440500014100L,
					0x000002000008008CL, 0x0000400108004200L,
					0xFFFFFC001DC00000L, 0xFFFFFFFFFFFFFFFFL,
					0xFFFFFFFFFFFFFFFFL, 0x0000041F0007FFFFL });
	public static final BitSet FOLLOW_factor2_in_factor18140 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_factor3_in_factor28151 = new BitSet(
			new long[] { 0x000000000C000002L });
	public static final BitSet FOLLOW_SHIFT_LEFT_in_factor28156 = new BitSet(
			new long[] { 0x8080000000000000L, 0xE000440500014100L,
					0x000002000008008CL, 0x0000400108004200L,
					0xFFFFFC001DC00000L, 0xFFFFFFFFFFFFFFFFL,
					0xFFFFFFFFFFFFFFFFL, 0x0000041F0007FFFFL });
	public static final BitSet FOLLOW_SHIFT_RIGHT_in_factor28159 = new BitSet(
			new long[] { 0x8080000000000000L, 0xE000440500014100L,
					0x000002000008008CL, 0x0000400108004200L,
					0xFFFFFC001DC00000L, 0xFFFFFFFFFFFFFFFFL,
					0xFFFFFFFFFFFFFFFFL, 0x0000041F0007FFFFL });
	public static final BitSet FOLLOW_factor3_in_factor28163 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_factor4_in_factor38174 = new BitSet(
			new long[] { 0x0000000000000002L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x00000C0000000000L });
	public static final BitSet FOLLOW_PLUS_in_factor38179 = new BitSet(
			new long[] { 0x8080000000000000L, 0xE000440500014100L,
					0x000002000008008CL, 0x0000400108004200L,
					0xFFFFFC001DC00000L, 0xFFFFFFFFFFFFFFFFL,
					0xFFFFFFFFFFFFFFFFL, 0x0000041F0007FFFFL });
	public static final BitSet FOLLOW_MINUS_in_factor38182 = new BitSet(
			new long[] { 0x8080000000000000L, 0xE000440500014100L,
					0x000002000008008CL, 0x0000400108004200L,
					0xFFFFFC001DC00000L, 0xFFFFFFFFFFFFFFFFL,
					0xFFFFFFFFFFFFFFFFL, 0x0000041F0007FFFFL });
	public static final BitSet FOLLOW_factor4_in_factor38186 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_factor5_in_factor48197 = new BitSet(
			new long[] { 0x4000000000000002L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x00000000E0000000L });
	public static final BitSet FOLLOW_ASTERISK_in_factor48202 = new BitSet(
			new long[] { 0x8080000000000000L, 0xE000440500014100L,
					0x000002000008008CL, 0x0000400108004200L,
					0xFFFFFC001DC00000L, 0xFFFFFFFFFFFFFFFFL,
					0xFFFFFFFFFFFFFFFFL, 0x0000041F0007FFFFL });
	public static final BitSet FOLLOW_DIVIDE_in_factor48205 = new BitSet(
			new long[] { 0x8080000000000000L, 0xE000440500014100L,
					0x000002000008008CL, 0x0000400108004200L,
					0xFFFFFC001DC00000L, 0xFFFFFFFFFFFFFFFFL,
					0xFFFFFFFFFFFFFFFFL, 0x0000041F0007FFFFL });
	public static final BitSet FOLLOW_MOD_SYM_in_factor48208 = new BitSet(
			new long[] { 0x8080000000000000L, 0xE000440500014100L,
					0x000002000008008CL, 0x0000400108004200L,
					0xFFFFFC001DC00000L, 0xFFFFFFFFFFFFFFFFL,
					0xFFFFFFFFFFFFFFFFL, 0x0000041F0007FFFFL });
	public static final BitSet FOLLOW_POWER_OP_in_factor48211 = new BitSet(
			new long[] { 0x8080000000000000L, 0xE000440500014100L,
					0x000002000008008CL, 0x0000400108004200L,
					0xFFFFFC001DC00000L, 0xFFFFFFFFFFFFFFFFL,
					0xFFFFFFFFFFFFFFFFL, 0x0000041F0007FFFFL });
	public static final BitSet FOLLOW_factor5_in_factor48215 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_factor6_in_factor58226 = new BitSet(
			new long[] { 0x0000000000000002L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x00000C0000000000L });
	public static final BitSet FOLLOW_PLUS_in_factor58231 = new BitSet(
			new long[] { 0x8080000000000000L, 0xE000440500014100L,
					0x000002000008008CL, 0x0000400108004200L,
					0xFFFFFC001DC00000L, 0xFFFFFFFFFFFFFFFFL,
					0xFFFFFFFFFFFFFFFFL, 0x0000041F0007FFFFL });
	public static final BitSet FOLLOW_MINUS_in_factor58234 = new BitSet(
			new long[] { 0x8080000000000000L, 0xE000440500014100L,
					0x000002000008008CL, 0x0000400108004200L,
					0xFFFFFC001DC00000L, 0xFFFFFFFFFFFFFFFFL,
					0xFFFFFFFFFFFFFFFFL, 0x0000041F0007FFFFL });
	public static final BitSet FOLLOW_interval_expr_in_factor58238 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_PLUS_in_factor68250 = new BitSet(
			new long[] { 0x8080000000000000L, 0xE000440500014100L,
					0x000002000008008CL, 0x0000400108004200L,
					0xFFFFFC001DC00000L, 0xFFFFFFFFFFFFFFFFL,
					0xFFFFFFFFFFFFFFFFL, 0x0000041F0007FFFFL });
	public static final BitSet FOLLOW_MINUS_in_factor68255 = new BitSet(
			new long[] { 0x8080000000000000L, 0xE000440500014100L,
					0x000002000008008CL, 0x0000400108004200L,
					0xFFFFFC001DC00000L, 0xFFFFFFFFFFFFFFFFL,
					0xFFFFFFFFFFFFFFFFL, 0x0000041F0007FFFFL });
	public static final BitSet FOLLOW_NEGATION_in_factor68260 = new BitSet(
			new long[] { 0x8080000000000000L, 0xE000440500014100L,
					0x000002000008008CL, 0x0000400108004200L,
					0xFFFFFC001DC00000L, 0xFFFFFFFFFFFFFFFFL,
					0xFFFFFFFFFFFFFFFFL, 0x0000041F0007FFFFL });
	public static final BitSet FOLLOW_BINARY_in_factor68265 = new BitSet(
			new long[] { 0x8080000000000000L, 0xE000440500014100L,
					0x000002000008008CL, 0x0000400108004200L,
					0xFFFFFC001DC00000L, 0xFFFFFFFFFFFFFFFFL,
					0xFFFFFFFFFFFFFFFFL, 0x0000041F0007FFFFL });
	public static final BitSet FOLLOW_simple_expr_in_factor68269 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_simple_expr_in_factor68274 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_simple_expr_in_factor78282 = new BitSet(
			new long[] { 0x0000000000000002L, 0x0000000000000000L,
					0x0000000000000020L });
	public static final BitSet FOLLOW_COLLATE_SYM_in_factor78285 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000030000000000L });
	public static final BitSet FOLLOW_collation_names_in_factor78288 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_literal_value_in_simple_expr8299 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_column_spec_in_simple_expr8305 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_function_call_in_simple_expr8310 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_USER_VAR_in_simple_expr8317 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_expression_list_in_simple_expr8322 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_ROW_SYM_in_simple_expr8328 = new BitSet(
			new long[] { 0x8000000000000000L });
	public static final BitSet FOLLOW_expression_list_in_simple_expr8330 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_subquery_in_simple_expr8336 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_EXISTS_in_simple_expr8341 = new BitSet(
			new long[] { 0x8000000000000000L });
	public static final BitSet FOLLOW_subquery_in_simple_expr8343 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_match_against_statement_in_simple_expr8350 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_case_when_statement_in_simple_expr8355 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_interval_expr_in_simple_expr8360 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_functionList_in_function_call8375 = new BitSet(
			new long[] { 0x8000000000000002L });
	public static final BitSet FOLLOW_LPAREN_in_function_call8379 = new BitSet(
			new long[] { 0x8080000000000000L, 0xE000440700014101L,
					0x000002000008008CL, 0x0000400108004200L,
					0xFFFFFC001DC00000L, 0xFFFFFFFFFFFFFFFFL,
					0xFFFFFFFFFFFFFFFFL, 0x0000041F0007FFFFL });
	public static final BitSet FOLLOW_expression_in_function_call8382 = new BitSet(
			new long[] { 0x0010000000000000L, 0x0000000000000001L });
	public static final BitSet FOLLOW_COMMA_in_function_call8385 = new BitSet(
			new long[] { 0x8080000000000000L, 0xE000440700014100L,
					0x000002000008008CL, 0x0000400108004200L,
					0xFFFFFC001DC00000L, 0xFFFFFFFFFFFFFFFFL,
					0xFFFFFFFFFFFFFFFFL, 0x0000041F0007FFFFL });
	public static final BitSet FOLLOW_expression_in_function_call8387 = new BitSet(
			new long[] { 0x0010000000000000L, 0x0000000000000001L });
	public static final BitSet FOLLOW_RPAREN_in_function_call8393 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_CAST_SYM_in_function_call8415 = new BitSet(
			new long[] { 0x8000000000000000L });
	public static final BitSet FOLLOW_LPAREN_in_function_call8417 = new BitSet(
			new long[] { 0x8080000000000000L, 0xE000440700014100L,
					0x000002000008008CL, 0x0000400108004200L,
					0xFFFFFC001DC00000L, 0xFFFFFFFFFFFFFFFFL,
					0xFFFFFFFFFFFFFFFFL, 0x0000041F0007FFFFL });
	public static final BitSet FOLLOW_expression_in_function_call8419 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000100L });
	public static final BitSet FOLLOW_AS_SYM_in_function_call8421 = new BitSet(
			new long[] { 0x0000000000000000L, 0x6802000000000000L,
					0x000000000000008AL, 0x0000000000000000L,
					0x0000000000010000L });
	public static final BitSet FOLLOW_cast_data_type_in_function_call8423 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000000001L });
	public static final BitSet FOLLOW_RPAREN_in_function_call8425 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_CONVERT_SYM_in_function_call8445 = new BitSet(
			new long[] { 0x8000000000000000L });
	public static final BitSet FOLLOW_LPAREN_in_function_call8447 = new BitSet(
			new long[] { 0x8080000000000000L, 0xE000440700014100L,
					0x000002000008008CL, 0x0000400108004200L,
					0xFFFFFC001DC00000L, 0xFFFFFFFFFFFFFFFFL,
					0xFFFFFFFFFFFFFFFFL, 0x0000041F0007FFFFL });
	public static final BitSet FOLLOW_expression_in_function_call8449 = new BitSet(
			new long[] { 0x0010000000000000L });
	public static final BitSet FOLLOW_COMMA_in_function_call8451 = new BitSet(
			new long[] { 0x0000000000000000L, 0x6802000000000000L,
					0x000000000000008AL, 0x0000000000000000L,
					0x0000000000010000L });
	public static final BitSet FOLLOW_cast_data_type_in_function_call8453 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000000001L });
	public static final BitSet FOLLOW_RPAREN_in_function_call8455 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_CONVERT_SYM_in_function_call8475 = new BitSet(
			new long[] { 0x8000000000000000L });
	public static final BitSet FOLLOW_LPAREN_in_function_call8477 = new BitSet(
			new long[] { 0x8080000000000000L, 0xE000440700014100L,
					0x000002000008008CL, 0x0000400108004200L,
					0xFFFFFC001DC00000L, 0xFFFFFFFFFFFFFFFFL,
					0xFFFFFFFFFFFFFFFFL, 0x0000041F0007FFFFL });
	public static final BitSet FOLLOW_expression_in_function_call8479 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000000080L });
	public static final BitSet FOLLOW_USING_SYM_in_function_call8481 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000008010L });
	public static final BitSet FOLLOW_transcoding_name_in_function_call8483 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000000001L });
	public static final BitSet FOLLOW_RPAREN_in_function_call8485 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_group_functions_in_function_call8504 = new BitSet(
			new long[] { 0x8000000000000000L });
	public static final BitSet FOLLOW_LPAREN_in_function_call8507 = new BitSet(
			new long[] { 0xC080000140000000L, 0xE000440500014100L,
					0x000002000008008CL, 0x0000400108004200L,
					0xFFFFFC001DC00000L, 0xFFFFFFFFFFFFFFFFL,
					0xFFFFFFFFFFFFFFFFL, 0x0000041F0007FFFFL });
	public static final BitSet FOLLOW_ASTERISK_in_function_call8512 = new BitSet(
			new long[] { 0x8080000000000000L, 0xE000440500014100L,
					0x000002000008008CL, 0x0000400108004200L,
					0xFFFFFC001DC00000L, 0xFFFFFFFFFFFFFFFFL,
					0xFFFFFFFFFFFFFFFFL, 0x0000041F0007FFFFL });
	public static final BitSet FOLLOW_ALL_in_function_call8517 = new BitSet(
			new long[] { 0x8080000000000000L, 0xE000440500014100L,
					0x000002000008008CL, 0x0000400108004200L,
					0xFFFFFC001DC00000L, 0xFFFFFFFFFFFFFFFFL,
					0xFFFFFFFFFFFFFFFFL, 0x0000041F0007FFFFL });
	public static final BitSet FOLLOW_DISTINCT_in_function_call8522 = new BitSet(
			new long[] { 0x8080000000000000L, 0xE000440500014100L,
					0x000002000008008CL, 0x0000400108004200L,
					0xFFFFFC001DC00000L, 0xFFFFFFFFFFFFFFFFL,
					0xFFFFFFFFFFFFFFFFL, 0x0000041F0007FFFFL });
	public static final BitSet FOLLOW_bit_expr_in_function_call8528 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000000001L });
	public static final BitSet FOLLOW_RPAREN_in_function_call8530 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_case_when_statement1_in_case_when_statement8550 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_case_when_statement2_in_case_when_statement8554 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_CASE_SYM_in_case_when_statement18569 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000002000000000L });
	public static final BitSet FOLLOW_WHEN_SYM_in_case_when_statement18581 = new BitSet(
			new long[] { 0x8080000000000000L, 0xE000440700014100L,
					0x000002000008008CL, 0x0000400108004200L,
					0xFFFFFC001DC00000L, 0xFFFFFFFFFFFFFFFFL,
					0xFFFFFFFFFFFFFFFFL, 0x0000041F0007FFFFL });
	public static final BitSet FOLLOW_expression_in_case_when_statement18583 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000004000000000L });
	public static final BitSet FOLLOW_THEN_SYM_in_case_when_statement18585 = new BitSet(
			new long[] { 0x8080000000000000L, 0xE000440500014100L,
					0x000002000008008CL, 0x0000400108004200L,
					0xFFFFFC001DC00000L, 0xFFFFFFFFFFFFFFFFL,
					0xFFFFFFFFFFFFFFFFL, 0x0000041F0007FFFFL });
	public static final BitSet FOLLOW_bit_expr_in_case_when_statement18587 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x000001A000000000L });
	public static final BitSet FOLLOW_ELSE_SYM_in_case_when_statement18602 = new BitSet(
			new long[] { 0x8080000000000000L, 0xE000440500014100L,
					0x000002000008008CL, 0x0000400108004200L,
					0xFFFFFC001DC00000L, 0xFFFFFFFFFFFFFFFFL,
					0xFFFFFFFFFFFFFFFFL, 0x0000041F0007FFFFL });
	public static final BitSet FOLLOW_bit_expr_in_case_when_statement18604 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000010000000000L });
	public static final BitSet FOLLOW_END_SYM_in_case_when_statement18617 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_CASE_SYM_in_case_when_statement28632 = new BitSet(
			new long[] { 0x8080000000000000L, 0xE000440500014100L,
					0x000002000008008CL, 0x0000400108004200L,
					0xFFFFFC001DC00000L, 0xFFFFFFFFFFFFFFFFL,
					0xFFFFFFFFFFFFFFFFL, 0x0000041F0007FFFFL });
	public static final BitSet FOLLOW_bit_expr_in_case_when_statement28634 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000002000000000L });
	public static final BitSet FOLLOW_WHEN_SYM_in_case_when_statement28646 = new BitSet(
			new long[] { 0x8080000000000000L, 0xE000440500014100L,
					0x000002000008008CL, 0x0000400108004200L,
					0xFFFFFC001DC00000L, 0xFFFFFFFFFFFFFFFFL,
					0xFFFFFFFFFFFFFFFFL, 0x0000041F0007FFFFL });
	public static final BitSet FOLLOW_bit_expr_in_case_when_statement28648 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000004000000000L });
	public static final BitSet FOLLOW_THEN_SYM_in_case_when_statement28650 = new BitSet(
			new long[] { 0x8080000000000000L, 0xE000440500014100L,
					0x000002000008008CL, 0x0000400108004200L,
					0xFFFFFC001DC00000L, 0xFFFFFFFFFFFFFFFFL,
					0xFFFFFFFFFFFFFFFFL, 0x0000041F0007FFFFL });
	public static final BitSet FOLLOW_bit_expr_in_case_when_statement28652 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x000001A000000000L });
	public static final BitSet FOLLOW_ELSE_SYM_in_case_when_statement28667 = new BitSet(
			new long[] { 0x8080000000000000L, 0xE000440500014100L,
					0x000002000008008CL, 0x0000400108004200L,
					0xFFFFFC001DC00000L, 0xFFFFFFFFFFFFFFFFL,
					0xFFFFFFFFFFFFFFFFL, 0x0000041F0007FFFFL });
	public static final BitSet FOLLOW_bit_expr_in_case_when_statement28669 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000010000000000L });
	public static final BitSet FOLLOW_END_SYM_in_case_when_statement28682 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_MATCH_in_match_against_statement8692 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000040000L });
	public static final BitSet FOLLOW_column_spec_in_match_against_statement8695 = new BitSet(
			new long[] { 0x0010000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000020000000000L });
	public static final BitSet FOLLOW_COMMA_in_match_against_statement8698 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000040000L });
	public static final BitSet FOLLOW_column_spec_in_match_against_statement8700 = new BitSet(
			new long[] { 0x0010000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000020000000000L });
	public static final BitSet FOLLOW_AGAINST_in_match_against_statement8706 = new BitSet(
			new long[] { 0x8080000000000000L, 0xE000440700014100L,
					0x000002000008008CL, 0x0000400108004200L,
					0xFFFFFC001DC00000L, 0xFFFFFFFFFFFFFFFFL,
					0xFFFFFFFFFFFFFFFFL, 0x0000041F0007FFFFL });
	public static final BitSet FOLLOW_expression_in_match_against_statement8709 = new BitSet(
			new long[] { 0x0020400000000002L });
	public static final BitSet FOLLOW_search_modifier_in_match_against_statement8712 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_schema_name_in_column_spec8730 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000000002L });
	public static final BitSet FOLLOW_DOT_in_column_spec8732 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000040000L });
	public static final BitSet FOLLOW_table_name_in_column_spec8737 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000000002L });
	public static final BitSet FOLLOW_DOT_in_column_spec8739 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000040000L });
	public static final BitSet FOLLOW_column_name_in_column_spec8744 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_LPAREN_in_expression_list8753 = new BitSet(
			new long[] { 0x8080000000000000L, 0xE000440700014100L,
					0x000002000008008CL, 0x0000400108004200L,
					0xFFFFFC001DC00000L, 0xFFFFFFFFFFFFFFFFL,
					0xFFFFFFFFFFFFFFFFL, 0x0000041F0007FFFFL });
	public static final BitSet FOLLOW_expression_in_expression_list8756 = new BitSet(
			new long[] { 0x0010000000000000L, 0x0000000000000001L });
	public static final BitSet FOLLOW_COMMA_in_expression_list8760 = new BitSet(
			new long[] { 0x8080000000000000L, 0xE000440700014100L,
					0x000002000008008CL, 0x0000400108004200L,
					0xFFFFFC001DC00000L, 0xFFFFFFFFFFFFFFFFL,
					0xFFFFFFFFFFFFFFFFL, 0x0000041F0007FFFFL });
	public static final BitSet FOLLOW_expression_in_expression_list8763 = new BitSet(
			new long[] { 0x0010000000000000L, 0x0000000000000001L });
	public static final BitSet FOLLOW_RPAREN_in_expression_list8768 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_INTERVAL_SYM_in_interval_expr8778 = new BitSet(
			new long[] { 0x8080000000000000L, 0xE000440700014100L,
					0x000002000008008CL, 0x0000400108004200L,
					0xFFFFFC001DC00000L, 0xFFFFFFFFFFFFFFFFL,
					0xFFFFFFFFFFFFFFFFL, 0x0000041F0007FFFFL });
	public static final BitSet FOLLOW_expression_in_interval_expr8780 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000004L, 0x0000000000000000L,
					0x000000FFFFC00000L });
	public static final BitSet FOLLOW_interval_unit_in_interval_expr8782 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_table_reference_in_table_references8804 = new BitSet(
			new long[] { 0x0010000000000002L });
	public static final BitSet FOLLOW_COMMA_in_table_references8808 = new BitSet(
			new long[] { 0x8000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000800000040000L });
	public static final BitSet FOLLOW_table_reference_in_table_references8811 = new BitSet(
			new long[] { 0x0010000000000002L });
	public static final BitSet FOLLOW_table_factor1_in_table_reference8822 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_table_atom_in_table_reference8826 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_table_factor2_in_table_factor18834 = new BitSet(
			new long[] { 0x0000000000000002L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000380000000000L });
	public static final BitSet FOLLOW_INNER_SYM_in_table_factor18840 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000200000000000L });
	public static final BitSet FOLLOW_CROSS_in_table_factor18845 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000200000000000L });
	public static final BitSet FOLLOW_JOIN_SYM_in_table_factor18850 = new BitSet(
			new long[] { 0x8000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000800000040000L });
	public static final BitSet FOLLOW_table_atom_in_table_factor18853 = new BitSet(
			new long[] { 0x0000000000000002L, 0x0000000000000480L });
	public static final BitSet FOLLOW_join_condition_in_table_factor18856 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_table_factor3_in_table_factor28870 = new BitSet(
			new long[] { 0x0000000800000002L });
	public static final BitSet FOLLOW_STRAIGHT_JOIN_in_table_factor28875 = new BitSet(
			new long[] { 0x8000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000800000040000L });
	public static final BitSet FOLLOW_table_atom_in_table_factor28878 = new BitSet(
			new long[] { 0x0000000000000002L, 0x0000000000000400L });
	public static final BitSet FOLLOW_ON_in_table_factor28881 = new BitSet(
			new long[] { 0x8080000000000000L, 0xE000440700014100L,
					0x000002000008008CL, 0x0000400108004200L,
					0xFFFFFC001DC00000L, 0xFFFFFFFFFFFFFFFFL,
					0xFFFFFFFFFFFFFFFFL, 0x0000041F0007FFFFL });
	public static final BitSet FOLLOW_expression_in_table_factor28884 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_table_factor4_in_table_factor38898 = new BitSet(
			new long[] { 0x0000000000000002L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000020008000000L });
	public static final BitSet FOLLOW_LEFT_in_table_factor38904 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000600000000000L });
	public static final BitSet FOLLOW_RIGHT_in_table_factor38907 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000600000000000L });
	public static final BitSet FOLLOW_OUTER_in_table_factor38912 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000200000000000L });
	public static final BitSet FOLLOW_JOIN_SYM_in_table_factor38917 = new BitSet(
			new long[] { 0x8000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000800000040000L });
	public static final BitSet FOLLOW_table_factor4_in_table_factor38920 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000000480L });
	public static final BitSet FOLLOW_join_condition_in_table_factor38922 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_table_atom_in_table_factor48934 = new BitSet(
			new long[] { 0x0000000000000002L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000020000L });
	public static final BitSet FOLLOW_NATURAL_in_table_factor48939 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000020008000000L,
					0x0000000000000000L, 0x0000200000000000L });
	public static final BitSet FOLLOW_LEFT_in_table_factor48945 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000600000000000L });
	public static final BitSet FOLLOW_RIGHT_in_table_factor48948 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000600000000000L });
	public static final BitSet FOLLOW_OUTER_in_table_factor48953 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000200000000000L });
	public static final BitSet FOLLOW_JOIN_SYM_in_table_factor48961 = new BitSet(
			new long[] { 0x8000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000800000040000L });
	public static final BitSet FOLLOW_table_atom_in_table_factor48964 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_table_spec_in_table_atom8979 = new BitSet(
			new long[] { 0x0000000000000002L, 0x0000000000000020L,
					0x0001000000000000L, 0x0000000000002100L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0001000000040000L });
	public static final BitSet FOLLOW_partition_clause_in_table_atom8982 = new BitSet(
			new long[] { 0x0000000000000002L, 0x0000000000000020L,
					0x0000000000000000L, 0x0000000000002100L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0001000000040000L });
	public static final BitSet FOLLOW_alias_in_table_atom8987 = new BitSet(
			new long[] { 0x0000000000000002L, 0x0000000000000020L,
					0x0000000000000000L, 0x0000000000002000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0001000000000000L });
	public static final BitSet FOLLOW_index_hint_list_in_table_atom8992 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_subquery_in_table_atom9003 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000100L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000040000L });
	public static final BitSet FOLLOW_alias_in_table_atom9005 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_LPAREN_in_table_atom9014 = new BitSet(
			new long[] { 0x8000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000800000040000L });
	public static final BitSet FOLLOW_table_references_in_table_atom9017 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000000001L });
	public static final BitSet FOLLOW_RPAREN_in_table_atom9019 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_OJ_SYM_in_table_atom9029 = new BitSet(
			new long[] { 0x8000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000800000040000L });
	public static final BitSet FOLLOW_table_reference_in_table_atom9032 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000008000000L });
	public static final BitSet FOLLOW_LEFT_in_table_atom9034 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000400000000000L });
	public static final BitSet FOLLOW_OUTER_in_table_atom9037 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000200000000000L });
	public static final BitSet FOLLOW_JOIN_SYM_in_table_atom9040 = new BitSet(
			new long[] { 0x8000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000800000040000L });
	public static final BitSet FOLLOW_table_reference_in_table_atom9043 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000000400L });
	public static final BitSet FOLLOW_ON_in_table_atom9045 = new BitSet(
			new long[] { 0x8080000000000000L, 0xE000440700014100L,
					0x000002000008008CL, 0x0000400108004200L,
					0xFFFFFC001DC00000L, 0xFFFFFFFFFFFFFFFFL,
					0xFFFFFFFFFFFFFFFFL, 0x0000041F0007FFFFL });
	public static final BitSet FOLLOW_expression_in_table_atom9047 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_ON_in_join_condition9060 = new BitSet(
			new long[] { 0x8080000000000000L, 0xE000440700014100L,
					0x000002000008008CL, 0x0000400108004200L,
					0xFFFFFC001DC00000L, 0xFFFFFFFFFFFFFFFFL,
					0xFFFFFFFFFFFFFFFFL, 0x0000041F0007FFFFL });
	public static final BitSet FOLLOW_expression_in_join_condition9063 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_USING_SYM_in_join_condition9069 = new BitSet(
			new long[] { 0x8000000000000000L });
	public static final BitSet FOLLOW_column_list_in_join_condition9072 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_index_hint_in_index_hint_list9081 = new BitSet(
			new long[] { 0x0010000000000002L });
	public static final BitSet FOLLOW_COMMA_in_index_hint_list9084 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000000020L,
					0x0000000000000000L, 0x0000000000002000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0001000000000000L });
	public static final BitSet FOLLOW_index_hint_in_index_hint_list9087 = new BitSet(
			new long[] { 0x0010000000000002L });
	public static final BitSet FOLLOW_set_in_index_options9097 = new BitSet(
			new long[] { 0x0000080000000002L });
	public static final BitSet FOLLOW_FOR_SYM_in_index_options9108 = new BitSet(
			new long[] { 0x0204000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000200000000000L });
	public static final BitSet FOLLOW_JOIN_SYM_in_index_options9112 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_ORDER_SYM_in_index_options9118 = new BitSet(
			new long[] { 0x0008000000000000L });
	public static final BitSet FOLLOW_BY_SYM_in_index_options9120 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_GROUP_SYM_in_index_options9126 = new BitSet(
			new long[] { 0x0008000000000000L });
	public static final BitSet FOLLOW_BY_SYM_in_index_options9128 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_USE_SYM_in_index_hint9144 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000401000L });
	public static final BitSet FOLLOW_index_options_in_index_hint9149 = new BitSet(
			new long[] { 0x8000000000000000L });
	public static final BitSet FOLLOW_LPAREN_in_index_hint9151 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000000001L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000040000L });
	public static final BitSet FOLLOW_index_list_in_index_hint9154 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000000001L });
	public static final BitSet FOLLOW_RPAREN_in_index_hint9158 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_IGNORE_SYM_in_index_hint9163 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000401000L });
	public static final BitSet FOLLOW_index_options_in_index_hint9165 = new BitSet(
			new long[] { 0x8000000000000000L });
	public static final BitSet FOLLOW_LPAREN_in_index_hint9167 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000040000L });
	public static final BitSet FOLLOW_index_list_in_index_hint9169 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000000001L });
	public static final BitSet FOLLOW_RPAREN_in_index_hint9171 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_FORCE_SYM_in_index_hint9176 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000401000L });
	public static final BitSet FOLLOW_index_options_in_index_hint9179 = new BitSet(
			new long[] { 0x8000000000000000L });
	public static final BitSet FOLLOW_LPAREN_in_index_hint9181 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000040000L });
	public static final BitSet FOLLOW_index_list_in_index_hint9183 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000000001L });
	public static final BitSet FOLLOW_RPAREN_in_index_hint9185 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_index_name_in_index_list9193 = new BitSet(
			new long[] { 0x0010000000000002L });
	public static final BitSet FOLLOW_COMMA_in_index_list9196 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000040000L });
	public static final BitSet FOLLOW_index_name_in_index_list9198 = new BitSet(
			new long[] { 0x0010000000000002L });
	public static final BitSet FOLLOW_PARTITION_SYM_in_partition_clause9208 = new BitSet(
			new long[] { 0x8000000000000000L });
	public static final BitSet FOLLOW_LPAREN_in_partition_clause9210 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000040000L });
	public static final BitSet FOLLOW_partition_names_in_partition_clause9212 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000000001L });
	public static final BitSet FOLLOW_RPAREN_in_partition_clause9214 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_partition_name_in_partition_names9221 = new BitSet(
			new long[] { 0x0010000000000002L });
	public static final BitSet FOLLOW_COMMA_in_partition_names9224 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000040000L });
	public static final BitSet FOLLOW_partition_name_in_partition_names9227 = new BitSet(
			new long[] { 0x0010000000000002L });
	public static final BitSet FOLLOW_column_spec_in_synpred42_MySQL744 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_INTEGER_NUM_in_synpred43_MySQL748 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_column_spec_in_synpred55_MySQL1023 = new BitSet(
			new long[] { 0x0000000000000002L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000100L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000040000L });
	public static final BitSet FOLLOW_alias_in_synpred55_MySQL1027 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_bit_expr_in_synpred86_MySQL1462 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_bit_expr_in_synpred87_MySQL1472 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_expression_in_synpred91_MySQL1548 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_single_table_update_statement_in_synpred94_MySQL1629 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_COMMA_in_synpred338_MySQL3753 = new BitSet(
			new long[] { 0x0000000020000000L, 0x0000030000410000L,
					0x0000C7E6F8000030L });
	public static final BitSet FOLLOW_table_option_in_synpred338_MySQL3759 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_table_options_in_synpred443_MySQL4779 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_DEFAULT_in_synpred522_MySQL5383 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000010L });
	public static final BitSet FOLLOW_CHARACTER_SYM_in_synpred522_MySQL5387 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000020000L });
	public static final BitSet FOLLOW_SET_SYM_in_synpred522_MySQL5389 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000002000L,
					0x0000000000000080L, 0xFFFFE00000000000L,
					0x000000000000FFFFL });
	public static final BitSet FOLLOW_EQ_SYM_in_synpred522_MySQL5392 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000080L, 0xFFFFE00000000000L,
					0x000000000000FFFFL });
	public static final BitSet FOLLOW_charset_name_in_synpred522_MySQL5396 = new BitSet(
			new long[] { 0x0000000000000002L, 0x0000000000000000L,
					0x0000000000000020L });
	public static final BitSet FOLLOW_COLLATE_SYM_in_synpred522_MySQL5399 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000002000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000040000L });
	public static final BitSet FOLLOW_EQ_SYM_in_synpred522_MySQL5402 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000040000L });
	public static final BitSet FOLLOW_collation_name_in_synpred522_MySQL5406 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_IN_SYM_in_synpred627_MySQL6406 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000020000L });
	public static final BitSet FOLLOW_NATURAL_in_synpred627_MySQL6408 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000040000L });
	public static final BitSet FOLLOW_LANGUAGE_in_synpred627_MySQL6410 = new BitSet(
			new long[] { 0x0001000000000000L });
	public static final BitSet FOLLOW_MODE_SYM_in_synpred627_MySQL6412 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_IN_SYM_in_synpred628_MySQL6419 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000020000L });
	public static final BitSet FOLLOW_NATURAL_in_synpred628_MySQL6421 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000040000L });
	public static final BitSet FOLLOW_LANGUAGE_in_synpred628_MySQL6423 = new BitSet(
			new long[] { 0x0001000000000000L });
	public static final BitSet FOLLOW_MODE_SYM_in_synpred628_MySQL6425 = new BitSet(
			new long[] { 0x0020000000000000L });
	public static final BitSet FOLLOW_WITH_in_synpred628_MySQL6427 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000080000L });
	public static final BitSet FOLLOW_QUERY_SYM_in_synpred628_MySQL6429 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000100000L });
	public static final BitSet FOLLOW_EXPANSION_SYM_in_synpred628_MySQL6431 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_char_functions_in_synpred660_MySQL6711 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_OR_SYM_in_synpred841_MySQL7812 = new BitSet(
			new long[] { 0x8080000000000000L, 0xE000440700014100L,
					0x000002000008008CL, 0x0000400108004200L,
					0xFFFFFC001DC00000L, 0xFFFFFFFFFFFFFFFFL,
					0xFFFFFFFFFFFFFFFFL, 0x0000041F0007FFFFL });
	public static final BitSet FOLLOW_exp_factor1_in_synpred841_MySQL7815 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_XOR_in_synpred842_MySQL7829 = new BitSet(
			new long[] { 0x8080000000000000L, 0xE000440700014100L,
					0x000002000008008CL, 0x0000400108004200L,
					0xFFFFFC001DC00000L, 0xFFFFFFFFFFFFFFFFL,
					0xFFFFFFFFFFFFFFFFL, 0x0000041F0007FFFFL });
	public static final BitSet FOLLOW_exp_factor2_in_synpred842_MySQL7832 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_AND_SYM_in_synpred843_MySQL7846 = new BitSet(
			new long[] { 0x8080000000000000L, 0xE000440700014100L,
					0x000002000008008CL, 0x0000400108004200L,
					0xFFFFFC001DC00000L, 0xFFFFFFFFFFFFFFFFL,
					0xFFFFFFFFFFFFFFFFL, 0x0000041F0007FFFFL });
	public static final BitSet FOLLOW_exp_factor3_in_synpred843_MySQL7849 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_NOT_SYM_in_synpred844_MySQL7860 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_IS_SYM_in_synpred847_MySQL7876 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000400200000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000C00000000000L });
	public static final BitSet FOLLOW_NOT_SYM_in_synpred847_MySQL7880 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000400000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000C00000000000L });
	public static final BitSet FOLLOW_boolean_literal_in_synpred847_MySQL7886 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_NULL_SYM_in_synpred847_MySQL7888 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_predicate_in_synpred848_MySQL7904 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000002000L,
					0x0000000000000000L, 0x00001F0000000000L });
	public static final BitSet FOLLOW_relational_op_in_synpred848_MySQL7906 = new BitSet(
			new long[] { 0x8080000000000000L, 0xE000440500014100L,
					0x000002000008008CL, 0x0000400108004200L,
					0xFFFFFC001DC00000L, 0xFFFFFFFFFFFFFFFFL,
					0xFFFFFFFFFFFFFFFFL, 0x0000041F0007FFFFL });
	public static final BitSet FOLLOW_predicate_in_synpred848_MySQL7908 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_predicate_in_synpred851_MySQL7926 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000002000L,
					0x0000000000000000L, 0x00001F0000000000L });
	public static final BitSet FOLLOW_relational_op_in_synpred851_MySQL7928 = new BitSet(
			new long[] { 0x8000000040000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000400000L });
	public static final BitSet FOLLOW_set_in_synpred851_MySQL7931 = new BitSet(
			new long[] { 0x8000000000000000L });
	public static final BitSet FOLLOW_subquery_in_synpred851_MySQL7944 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_NOT_SYM_in_synpred853_MySQL7954 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000400000000L });
	public static final BitSet FOLLOW_EXISTS_in_synpred853_MySQL7959 = new BitSet(
			new long[] { 0x8000000000000000L });
	public static final BitSet FOLLOW_subquery_in_synpred853_MySQL7962 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_bit_expr_in_synpred856_MySQL7983 = new BitSet(
			new long[] { 0x0000400000000000L, 0x0000000200000000L });
	public static final BitSet FOLLOW_NOT_SYM_in_synpred856_MySQL7986 = new BitSet(
			new long[] { 0x0000400000000000L });
	public static final BitSet FOLLOW_IN_SYM_in_synpred856_MySQL7991 = new BitSet(
			new long[] { 0x8000000000000000L });
	public static final BitSet FOLLOW_subquery_in_synpred856_MySQL7995 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_expression_list_in_synpred856_MySQL7999 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_bit_expr_in_synpred858_MySQL8009 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000200000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000800000L });
	public static final BitSet FOLLOW_NOT_SYM_in_synpred858_MySQL8012 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000800000L });
	public static final BitSet FOLLOW_BETWEEN_in_synpred858_MySQL8017 = new BitSet(
			new long[] { 0x8080000000000000L, 0xE000440500014100L,
					0x000002000008008CL, 0x0000400108004200L,
					0xFFFFFC001DC00000L, 0xFFFFFFFFFFFFFFFFL,
					0xFFFFFFFFFFFFFFFFL, 0x0000041F0007FFFFL });
	public static final BitSet FOLLOW_bit_expr_in_synpred858_MySQL8020 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000100000L });
	public static final BitSet FOLLOW_AND_SYM_in_synpred858_MySQL8022 = new BitSet(
			new long[] { 0x8080000000000000L, 0xE000440500014100L,
					0x000002000008008CL, 0x0000400108004200L,
					0xFFFFFC001DC00000L, 0xFFFFFFFFFFFFFFFFL,
					0xFFFFFFFFFFFFFFFFL, 0x0000041F0007FFFFL });
	public static final BitSet FOLLOW_predicate_in_synpred858_MySQL8025 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_bit_expr_in_synpred859_MySQL8035 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000001000000L });
	public static final BitSet FOLLOW_SOUNDS_SYM_in_synpred859_MySQL8037 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000800000000L });
	public static final BitSet FOLLOW_LIKE_SYM_in_synpred859_MySQL8040 = new BitSet(
			new long[] { 0x8080000000000000L, 0xE000440500014100L,
					0x000002000008008CL, 0x0000400108004200L,
					0xFFFFFC001DC00000L, 0xFFFFFFFFFFFFFFFFL,
					0xFFFFFFFFFFFFFFFFL, 0x0000041F0007FFFFL });
	public static final BitSet FOLLOW_bit_expr_in_synpred859_MySQL8043 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_ESCAPE_SYM_in_synpred861_MySQL8067 = new BitSet(
			new long[] { 0x8080000000000000L, 0xE000440500014100L,
					0x000002000008008CL, 0x0000400108004200L,
					0xFFFFFC001DC00000L, 0xFFFFFFFFFFFFFFFFL,
					0xFFFFFFFFFFFFFFFFL, 0x0000041F0007FFFFL });
	public static final BitSet FOLLOW_simple_expr_in_synpred861_MySQL8070 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_bit_expr_in_synpred862_MySQL8053 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000A00000000L });
	public static final BitSet FOLLOW_NOT_SYM_in_synpred862_MySQL8056 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000800000000L });
	public static final BitSet FOLLOW_LIKE_SYM_in_synpred862_MySQL8061 = new BitSet(
			new long[] { 0x8080000000000000L, 0xE000440500014100L,
					0x000002000008008CL, 0x0000400108004200L,
					0xFFFFFC001DC00000L, 0xFFFFFFFFFFFFFFFFL,
					0xFFFFFFFFFFFFFFFFL, 0x0000041F0007FFFFL });
	public static final BitSet FOLLOW_simple_expr_in_synpred862_MySQL8064 = new BitSet(
			new long[] { 0x0000000000000002L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000002000000L });
	public static final BitSet FOLLOW_ESCAPE_SYM_in_synpred862_MySQL8067 = new BitSet(
			new long[] { 0x8080000000000000L, 0xE000440500014100L,
					0x000002000008008CL, 0x0000400108004200L,
					0xFFFFFC001DC00000L, 0xFFFFFFFFFFFFFFFFL,
					0xFFFFFFFFFFFFFFFFL, 0x0000041F0007FFFFL });
	public static final BitSet FOLLOW_simple_expr_in_synpred862_MySQL8070 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_bit_expr_in_synpred864_MySQL8081 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000200000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000004000000L });
	public static final BitSet FOLLOW_NOT_SYM_in_synpred864_MySQL8084 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000004000000L });
	public static final BitSet FOLLOW_REGEXP_in_synpred864_MySQL8089 = new BitSet(
			new long[] { 0x8080000000000000L, 0xE000440500014100L,
					0x000002000008008CL, 0x0000400108004200L,
					0xFFFFFC001DC00000L, 0xFFFFFFFFFFFFFFFFL,
					0xFFFFFFFFFFFFFFFFL, 0x0000041F0007FFFFL });
	public static final BitSet FOLLOW_bit_expr_in_synpred864_MySQL8092 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_VERTBAR_in_synpred865_MySQL8119 = new BitSet(
			new long[] { 0x8080000000000000L, 0xE000440500014100L,
					0x000002000008008CL, 0x0000400108004200L,
					0xFFFFFC001DC00000L, 0xFFFFFFFFFFFFFFFFL,
					0xFFFFFFFFFFFFFFFFL, 0x0000041F0007FFFFL });
	public static final BitSet FOLLOW_factor1_in_synpred865_MySQL8122 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_BITAND_in_synpred866_MySQL8137 = new BitSet(
			new long[] { 0x8080000000000000L, 0xE000440500014100L,
					0x000002000008008CL, 0x0000400108004200L,
					0xFFFFFC001DC00000L, 0xFFFFFFFFFFFFFFFFL,
					0xFFFFFFFFFFFFFFFFL, 0x0000041F0007FFFFL });
	public static final BitSet FOLLOW_factor2_in_synpred866_MySQL8140 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_set_in_synpred868_MySQL8155 = new BitSet(
			new long[] { 0x8080000000000000L, 0xE000440500014100L,
					0x000002000008008CL, 0x0000400108004200L,
					0xFFFFFC001DC00000L, 0xFFFFFFFFFFFFFFFFL,
					0xFFFFFFFFFFFFFFFFL, 0x0000041F0007FFFFL });
	public static final BitSet FOLLOW_factor3_in_synpred868_MySQL8163 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_set_in_synpred870_MySQL8178 = new BitSet(
			new long[] { 0x8080000000000000L, 0xE000440500014100L,
					0x000002000008008CL, 0x0000400108004200L,
					0xFFFFFC001DC00000L, 0xFFFFFFFFFFFFFFFFL,
					0xFFFFFFFFFFFFFFFFL, 0x0000041F0007FFFFL });
	public static final BitSet FOLLOW_factor4_in_synpred870_MySQL8186 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_set_in_synpred874_MySQL8201 = new BitSet(
			new long[] { 0x8080000000000000L, 0xE000440500014100L,
					0x000002000008008CL, 0x0000400108004200L,
					0xFFFFFC001DC00000L, 0xFFFFFFFFFFFFFFFFL,
					0xFFFFFFFFFFFFFFFFL, 0x0000041F0007FFFFL });
	public static final BitSet FOLLOW_factor5_in_synpred874_MySQL8215 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_set_in_synpred876_MySQL8230 = new BitSet(
			new long[] { 0x8080000000000000L, 0xE000440500014100L,
					0x000002000008008CL, 0x0000400108004200L,
					0xFFFFFC001DC00000L, 0xFFFFFFFFFFFFFFFFL,
					0xFFFFFFFFFFFFFFFFL, 0x0000041F0007FFFFL });
	public static final BitSet FOLLOW_interval_expr_in_synpred876_MySQL8238 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_set_in_synpred880_MySQL8249 = new BitSet(
			new long[] { 0x8080000000000000L, 0xE000440500014100L,
					0x000002000008008CL, 0x0000400108004200L,
					0xFFFFFC001DC00000L, 0xFFFFFFFFFFFFFFFFL,
					0xFFFFFFFFFFFFFFFFL, 0x0000041F0007FFFFL });
	public static final BitSet FOLLOW_simple_expr_in_synpred880_MySQL8269 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_CONVERT_SYM_in_synpred897_MySQL8445 = new BitSet(
			new long[] { 0x8000000000000000L });
	public static final BitSet FOLLOW_LPAREN_in_synpred897_MySQL8447 = new BitSet(
			new long[] { 0x8080000000000000L, 0xE000440700014100L,
					0x000002000008008CL, 0x0000400108004200L,
					0xFFFFFC001DC00000L, 0xFFFFFFFFFFFFFFFFL,
					0xFFFFFFFFFFFFFFFFL, 0x0000041F0007FFFFL });
	public static final BitSet FOLLOW_expression_in_synpred897_MySQL8449 = new BitSet(
			new long[] { 0x0010000000000000L });
	public static final BitSet FOLLOW_COMMA_in_synpred897_MySQL8451 = new BitSet(
			new long[] { 0x0000000000000000L, 0x6802000000000000L,
					0x000000000000008AL, 0x0000000000000000L,
					0x0000000000010000L });
	public static final BitSet FOLLOW_cast_data_type_in_synpred897_MySQL8453 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000000001L });
	public static final BitSet FOLLOW_RPAREN_in_synpred897_MySQL8455 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_CONVERT_SYM_in_synpred898_MySQL8475 = new BitSet(
			new long[] { 0x8000000000000000L });
	public static final BitSet FOLLOW_LPAREN_in_synpred898_MySQL8477 = new BitSet(
			new long[] { 0x8080000000000000L, 0xE000440700014100L,
					0x000002000008008CL, 0x0000400108004200L,
					0xFFFFFC001DC00000L, 0xFFFFFFFFFFFFFFFFL,
					0xFFFFFFFFFFFFFFFFL, 0x0000041F0007FFFFL });
	public static final BitSet FOLLOW_expression_in_synpred898_MySQL8479 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000000080L });
	public static final BitSet FOLLOW_USING_SYM_in_synpred898_MySQL8481 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000008010L });
	public static final BitSet FOLLOW_transcoding_name_in_synpred898_MySQL8483 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000000001L });
	public static final BitSet FOLLOW_RPAREN_in_synpred898_MySQL8485 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_search_modifier_in_synpred908_MySQL8712 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_table_factor1_in_synpred913_MySQL8822 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_join_condition_in_synpred916_MySQL8856 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_ON_in_synpred918_MySQL8881 = new BitSet(
			new long[] { 0x8080000000000000L, 0xE000440700014100L,
					0x000002000008008CL, 0x0000400108004200L,
					0xFFFFFC001DC00000L, 0xFFFFFFFFFFFFFFFFL,
					0xFFFFFFFFFFFFFFFFL, 0x0000041F0007FFFFL });
	public static final BitSet FOLLOW_expression_in_synpred918_MySQL8884 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_set_in_synpred922_MySQL8903 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000600000000000L });
	public static final BitSet FOLLOW_OUTER_in_synpred922_MySQL8912 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000200000000000L });
	public static final BitSet FOLLOW_JOIN_SYM_in_synpred922_MySQL8917 = new BitSet(
			new long[] { 0x8000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000000000000000L,
					0x0000000000000000L, 0x0000800000040000L });
	public static final BitSet FOLLOW_table_factor4_in_synpred922_MySQL8920 = new BitSet(
			new long[] { 0x0000000000000000L, 0x0000000000000480L });
	public static final BitSet FOLLOW_join_condition_in_synpred922_MySQL8922 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_partition_clause_in_synpred927_MySQL8982 = new BitSet(
			new long[] { 0x0000000000000002L });

}